N'Abend.
Nachdem ich von Jomelo sehr gute Tipps bekommen habe zu den Bits, die das Funkthermometer auspuckt, habe ich mit diesem Code
#define _Whole_Data_length 116
int pin = 2;
byte tempten;
byte tempone;
byte tempcom;
byte humiten;
byte humione;
byte valuepos=0;
byte bitpos=0;
byte bitcounter=1;
byte array_pos=0;
unsigned long duration;
int whole_array[_Whole_Data_length];
void setup()
{
pinMode(pin, INPUT);ten
Serial.begin(9600);
Serial.println("Give it to me...");
delay(2#define _Array_dimension 2000);
}
void loop()
{
duration = pulseIn(pin, HIGH);
if ((duration>600)&&(duration<1000)) {
whole_array[array_pos] = 1;
array_pos++;
}
if ((duration>1200)&&(duration<4000)){
whole_array[array_pos] = 0;
array_pos++;
}
if (array_pos>=_Whole_Data_length) {
for (int valuepos=22;valuepos<=25;valuepos++) {
bitWrite(tempten, bitpos, whole_array[valuepos]);
bitpos++;
}
bitpos=0;
for (int valuepos=26;valuepos<=29;valuepos++) {
bitWrite(tempone, bitpos, whole_array[valuepos]);
bitpos++;
}
bitpos=0;
for (int valuepos=30;valuepos<=33;valuepos++) {
bitWrite(tempcom, bitpos, whole_array[valuepos]);
bitpos++;
}
bitpos=0;
for (int valuepos=34;valuepos<=37;valuepos++) {
bitWrite(humiten, bitpos, whole_array[valuepos]);
bitpos++;
}
bitpos=0;
for (int valuepos=38;valuepos<=41;valuepos++) {
bitWrite(humione, bitpos, whole_array[valuepos]);
bitpos++;
}
bitpos=0;
Serial.print("Es sind ");
Serial.print(tempcom,DEC);
Serial.print(tempone,DEC);
Serial.print(",");
Serial.print(tempten,DEC);
Serial.print(" Grad Celsius bei ");
Serial.print(humione,DEC);
Serial.print(humiten,DEC);
Serial.println(" Prozent Feutigkeit.");
array_pos=0;
}
}
das hier im SM herausbekommen:
Give it to me...
Es sind 24,5 Grad Celsius bei 23 Prozent Feutigkeit.
Es sind 24,5 Grad Celsius bei 23 Prozent Feutigkeit.
Es sind 24,5 Grad Celsius bei 23 Prozent Feutigkeit.
Es sind 24,5 Grad Celsius bei 23 Prozent Feutigkeit.
Es sind 24,4 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,4 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,3 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,3 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,3 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,3 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,2 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,2 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,2 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,1 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,1 Grad Celsius bei 24 Prozent Feutigkeit.
Es sind 24,1 Grad Celsius bei 25 Prozent Feutigkeit.
Es sind 24,1 Grad Celsius bei 25 Prozent Feutigkeit.
Es sind 24,0 Grad Celsius bei 25 Prozent Feutigkeit.
Es sind 24,0 Grad Celsius bei 25 Prozent Feutigkeit.
Es sind 24,0 Grad Celsius bei 25 Prozent Feutigkeit.
Es sind 23,9 Grad Celsius bei 27 Prozent Feutigkeit.
Es sind 23,9 Grad Celsius bei 27 Prozent Feutigkeit.
Es sind 23,9 Grad Celsius bei 27 Prozent Feutigkeit.
Es sind 23,9 Grad Celsius bei 27 Prozent Feutigkeit.
Es sind 23,9 Grad Celsius bei 27 Prozent Feutigkeit.
Es sind 23,8 Grad Celsius bei 27 Prozent Feutigkeit.
Es sind 23,8 Grad Celsius bei 28 Prozent Feutigkeit.
Es sind 23,8 Grad Celsius bei 28 Prozent Feutigkeit.
Es sind 23,8 Grad Celsius bei 28 Prozent Feutigkeit.
Es sind 23,8 Grad Celsius bei 28 Prozent Feutigkeit.
Es sind 23,7 Grad Celsius bei 28 Prozent Feutigkeit.
Ich denke, da kann man nicht schimpfen Allerdings findet im Moment keinerlei Check auf Fehler statt. Klar bei dem Q'N'D Code oben
Danke, danke, danke nochmal an Dich, Jomelo, für Deine Unterstützung!
Todo's sind noch:
- SD Card implementieren
- Ausgabe auf Display
- Fehlercheck / oder herausfinden, was die letzten 12 BIT nach Temp. und Feucht. bedeuten...
- Umwandelt von Bit in Dezimal in eine Funktion bauen.