Gast
#4816928
Hallo erst mal an alle. Ich habe volgende frage wegen DHT22. geht um mein sketch. unzwar habe ich volgendes vor daten aus lesen und auf ein lcd display anzeigen. geht schon aus den daten die er aus gibt. float h = dht.readHumidity(); //Luftfeuchte auslesen float t = dht.readTemperature(); //Temperatur auslesen also h und t sollen bei verschidenen fällen dinge geschehen zb grüne led an wen ein bereich von temperatur und luft stimmt rot wen nicht und so weiter das problem was ich habe ist switch / case momentan habe ich es durch if gelöst was aber umstäntlich ist wie ich finde und nicht gerade gut da es viele anweisungen gibt dafür. switch (var) { case 1: //do something when var equals 1 break; case 2: //do something when var equals 2 break; default: // if nothing else matches, do the default // default is optional break; } ist mir auch soweit klar wie es geht aber wen ich jetzt bei var t eingebe und die mir die temperatur ausgibt kann der switch nichts mit anfangen. kann mir einer da weiter helfen bitte. bisher der sketch noch im zimlichen roch zustand. #include <LiquidCrystal.h> #include "DHT.h" LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #define DHTPIN 8 #define DHTTYPE DHT22 //DHT11, DHT21, DHT22 DHT dht(DHTPIN, DHTTYPE); int Arlarm = 13; int Green = 10; int Red = 9; int Yellow = 7; void setup() { pinMode(Green, OUTPUT); // Grün LED pinMode(Red, OUTPUT); // Rot LED lcd.begin(16, 2); lcd.print("Initialisierung..."); lcd.clear(); Serial.begin(9600); Serial.println("DHT22 - Test!"); dht.begin(); } void loop() { float h = dht.readHumidity(); //Luftfeuchte auslesen float t = dht.readTemperature(); //Temperatur auslesen if (isnan(t) || isnan(h)) // Prüfen ob eine gültige Zahl zurückgegeben wird. Wenn NaN (not a number) zurückgegeben wird, dann Fehler ausgeben. { Serial.println("DHT22 konnte nicht ausgelesen werden"); } else if (((h > vonGefahrLuft) && (h < bisGefahrLuft)) && ((t > vonGefahrTemp) && (t < bisGefahrTemp))) { // Serial.print("Warnung: "); // Alarm Zeile // digitalWrite(Red,HIGH); // Für // delay(100); // alarmton // digitalWrite(Red,LOW); // // delay(100); // } else { // Serial.print("Alles gut: "); // Alarm Zeile // digitalWrite(Arlarm,LOW); if (((t > vonOptimalTemp) && (t < bisOptimalTemp)) && ((h > vonOptimalLuft) && (h < bisOptimalLuft))) { digitalWrite(Green,HIGH); // Anweisungsblock für wahr digitalWrite(Red,LOW); // Anweisungsblock für wahr } else { digitalWrite(Red,HIGH); // Anweisungsblock für falsch digitalWrite(Green,LOW); // Anweisungsblock für falsch } } lcd.setCursor(0, 0); lcd.print(" Temp: "); lcd.print(t); lcd.print(" C"); lcd.setCursor(0, 1); lcd.print(" Luft: "); lcd.print(h); lcd.print(" %"); // Serial.print("Luftfeuchte: "); // Serial.print(h); // Serial.print(" %\t"); // Serial.print("Temperatur: "); // Serial.print(t); // Serial.println(" C"); Liben dank schon mal