Hallo,
den Code von jurs habe ich schon gefunden - aber mir sind da einige dinge nicht wirklich klar:
Wo genau werden diese Zeilen eingefügt? Über void setup? Alle über void setup?
Wie wird die Umsetzung true/false auf die Stundenzeit gemacht?
Wie gesagt, bin totaler Neuanfänger...
Meinen ersten Arduino habe ich vor 2 Wochen in den Händen gehalten 
Ich hänge mal den sketch ein - vielleicht kann mir ja mal Jemand erläutern was wo wie hin muss
by the way - wie mache ich das mit der Funktion "für Forum kopieren" - und dann hier einfügen??
Also wie bekomm ich das Fenster um den Sketch?
(CODE TAGS PLEASE!)
#include "Wire.h"
#define DS3231_I2C_ADDRESS 0x68
#include "LiquidCrystal_I2C.h" // Library für LCD aufgerufen
LiquidCrystal_I2C lcd(0x27,20,4); // LCD Adresse auf 0x27 gesetzt, 16 Zeichen / 2 Zeilen LCD
// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val)
{
return( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
return( (val/16*10) + (val%16) );
}
void setup()
{
Wire.begin();
Serial.begin(9600);
lcd.init(); // Initialisierung des LCD
lcd.backlight(); // LCD Hintergrundbeleuchtung aktivieren
// set the initial time here:
// DS3231 seconds, minutes, hours, day, date, month, year
// setDS3231time(30,25,17,7,28,03,15);
}
void readDS3231time(byte *second, byte *minute,byte *hour,byte *dayOfWeek,byte *dayOfMonth,
byte *month,byte *year)
{
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set DS3231 register pointer to 00h
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
// request seven bytes of data from DS3231 starting from register 00h
*second = bcdToDec(Wire.read() & 0x7f);
*minute = bcdToDec(Wire.read());
*hour = bcdToDec(Wire.read() & 0x3f);
*dayOfWeek = bcdToDec(Wire.read());
*dayOfMonth = bcdToDec(Wire.read());
*month = bcdToDec(Wire.read());
*year = bcdToDec(Wire.read());
}
void displayTime()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,
&year);
// send it to the serial monitor
Serial.print(hour, DEC);
// convert the byte variable to a decimal number when displayed
Serial.print(":");
if (minute<10)
{
Serial.print("0");
}
Serial.print(minute, DEC);
Serial.print(":");
if (second<10)
{
Serial.print("0");
}
Serial.print(second, DEC);
Serial.print(" ");
if (dayOfMonth<10)
{
Serial.print("0");
}
Serial.print(dayOfMonth, DEC);
Serial.print("/");
if (month<10)
{
Serial.print("0");
}
Serial.print(month, DEC);
Serial.print("/");
Serial.print(year, DEC);
Serial.print(" Wochentag: ");
switch(dayOfWeek){
case 1:
Serial.println("Sonntag");
break;
case 2:
Serial.println("Montag");
break;
case 3:
Serial.println("Dienstag");
break;
case 4:
Serial.println("Mittwoch");
break;
case 5:
Serial.println("Donnerstag");
break;
case 6:
Serial.println("Freitag");
break;
case 7:
Serial.println("Samstag");
break;
}
lcd.setCursor(0, 0); // Anfang auf Stelle 0, Zeile 0 setzen
if (hour<10)
{
lcd.print("0");
}
lcd.print(hour); // Temp innen: auf LCD ausgeben
lcd.setCursor(2, 0); // Anfang auf Stelle 13, Zeile 0 setzen
lcd.print(":"); // Wert aus "t1" ausgeben (Temperatur1)
lcd.setCursor(3, 0); // Anfang auf Stelle 19, Zeile 0 setzen
if (minute<10)
{
lcd.print("0");
}
lcd.print(minute); // C auf LCD ausgeben
lcd.setCursor(5, 0); // Anfang auf Stelle 0, Zeile 1 setzen
lcd.print(":"); // Feuchte rel: auf LCD ausgeben
lcd.setCursor(6, 0); // Anfang auf Stelle 13, Zeile 1 setzen
if (second <10)
{lcd.print("0");
lcd.setCursor(7,0);
}
lcd.print(second); // Wert aus "h1" ausgeben (Luftfeuchtigkeit1)
}
void loop()
{
displayTime(); // display the real-time clock data on the Serial Monitor,
delay(1000); // every second
}