Verfasste Forenbeiträge
Ansicht von 1 Beitrag (von insgesamt 1)
-
AutorBeiträge
-
DirkTeilnehmer
Ja, das war der Fehler.
Mittlerweile klappt alles. Sogar die Zeitschaltung des Displays.
Vielen Dank.
Das Sketch sieht jetzt so aus:#include "DHT.h" #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <DS3231.h> // Init the DS3231 using the hardware interface DS3231 rtc(SDA, SCL); DHT dht; LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display Time t; String tage; void setup() { dht.setup(2); // data pin 2 lcd.init(); // Initialisiert das Display rtc.begin(); // Initialisiert das Zeitmodul //rtc.setTime(21, 40, 0); //Hiermit kann man die Uhr stellen lcd.backlight(); //Serial.begin(115200); lcd.setCursor(0,0); lcd.print("Version 27.Nov19"); } void loop(){ //delay(dht.getMinimumSamplingPeriod()); lcd.setCursor(0,0); //Tage ins deutsche übersetzen tage = rtc.getDOWStr(2); if (tage == "Monday") { tage = "Montag"; } else if (tage == "Tuesday") { tage = "Dienstag"; } else if (tage == "Wednesday") { tage = "Mittwoch"; } else if (tage == "Thursday") { tage = "Donnerstag"; } else if (tage == "Friday") { tage = "Freitag"; } else if (tage == "Saturday") { tage = "Samstag"; } else if(tage == "Sunday") { tage = "Sonntag"; } lcd.print(tage); lcd.setCursor(11,0); lcd.print(rtc.getTimeStr(1)); float humidity = dht.getHumidity(); float temperature = dht.getTemperature(); lcd.setCursor(0,1); lcd.print(temperature, 1); lcd.print("\xDF""C"); lcd.setCursor(7,1); lcd.print(humidity, 1); lcd.print("%relF"); display_schalten(); delay(1000); } //Display an und ausschalten void display_schalten(){ t = rtc.getTime(); // Die Zeit auslesen vom DS3231 int stunde = t.hour; int minute = t.min; int sekunde = t.sec; //Das Display um 4 Uhr morgens einmal löschen, damit der Tag richtig dargestellt wird // Weil längere Tagesnamen ihren Namen nicht löschen. if (stunde == 4 && sekunde == 5){ lcd.clear(); } // In der Zeit von 6 Uhr bis 21:59 Display anschalten if (stunde > 5 && stunde < 22 ){ lcd.backlight(); } else if (stunde == 22 && minute == 0){ lcd.clear(); delay(100); lcd.setCursor(0,0); lcd.print("Gute Nacht"); lcd.setCursor(0,1); lcd.print("lieber Dirk"); } // Display ausschalten else{ lcd.noBacklight(); } }
-
AutorBeiträge
Ansicht von 1 Beitrag (von insgesamt 1)