Hi.....
today i want to rebuilt my little alarmclock and it worked for around three Weeks at home. So i build it up in my new living room and uploaded my code and this piece of sh... stopped working..
It seems that i cant setup the time in the DS3231 or that it cant store the Data... I have tried a new Battery and lots of other code.
And i noticed that Arduino was updatet right? Because under Processors i have a new Point: ATmega328 "Old Bootloader".
Is it possible that this is the reason for my Problem?
Here is my Code:
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <DS3231.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27,16,2); //0x27 eig standartadresse oder 0x3F
DS3231 clock;
RTCDateTime dt;
String Alarmzeit = "sjadn";
String Aktzeit;
int LED = 3;
int SUMMER = 2;
int LICHTSENSOR = 4;
//Nochmal genau nachvollziehen! https://www.youtube.com/watch?v=GyprsoB887Y
const byte rows = 4;
const byte cols = 4;
char keys [rows][cols] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[rows] = {12,11,10,9};
byte colPins[cols] = {8,7,6,5};
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins,rows,cols);
void setup(){
Serial.begin(9600);
clock.begin();
lcd.begin();
pinMode(LED,OUTPUT);
pinMode(SUMMER,OUTPUT);
pinMode(LICHTSENSOR,INPUT_PULLUP);
//clock.setDateTime(2016, 12, 9, 11, 46, 00);
clock.setDateTime(__DATE__, __TIME__);
}
void loop(){
Aktzeit = Zeitaktualisierung();
Zeitausgabe();
Alarm();
//Menue
char key = keypad.getKey();
if(key == 'A'){
lcd.backlight();
lcd.display();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarmeinstellung:");
lcd.setCursor(4,1);
lcd.print(Alarmzeit);
lcd.setCursor(4,1);
lcd.blink();
char Stunde1 = keypad.waitForKey();
lcd.print(Stunde1);
String Stunde1Str;
Stunde1Str = Stunde1;
char Stunde2 = keypad.waitForKey();
lcd.print(Stunde2);
String Stunde2Str;
Stunde2Str = Stunde2;
lcd.setCursor(7,1);
char Minute1 = keypad.waitForKey();
lcd.print(Minute1);
String Minute1Str;
Minute1Str = Minute1;
char Minute2 = keypad.waitForKey();
lcd.print(Minute2);
String Minute2Str;
Minute2Str = Minute2;
lcd.blink();
delay(1000);
lcd.clear();
delay(1000);
String Alarmzeit_Menue = Stunde1Str + Stunde2Str + ":" + Minute1Str + Minute2Str +":00 ";
Alarmzeit = Alarmzeit_Menue;
lcd.print("Neuer Alarm um:");
lcd.setCursor(4,1);
lcd.print(Alarmzeit);
delay(5000);
lcd.clear();
int i=1;
while(i<9){
Aktzeit = Zeitaktualisierung();
Zeitausgabe();
i++;
}
}
if(key == 'B'){
lcd.backlight();
lcd.display();
int i;
while(i<9){
Aktzeit = Zeitaktualisierung();
Zeitausgabe();
i++;
}
}
lcd.clear();
lcd.noBacklight();
lcd.noDisplay();
}
String Zeitaktualisierung(){
dt = clock.getDateTime();
String Aktzeit = clock.dateFormat("H:i:s ",dt);
return Aktzeit;
}
void Zeitausgabe(){
Serial.println(Aktzeit);
Serial.println(Alarmzeit);
lcd.setCursor(4,0);
lcd.println(Aktzeit);
lcd.setCursor(4,1);
lcd.println(Alarmzeit);
delay(750);
//lcd.clear();
}
void Alarm(){
if (Aktzeit == Alarmzeit){
lcd.backlight();
lcd.display();
lcd.setCursor(3,0);
lcd.print("Aufstehen");
lcd.setCursor(4,1);
lcd.print(Alarmzeit);
while(digitalRead(LICHTSENSOR)==HIGH){
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(LED,LOW);
delay(1000);
digitalWrite(SUMMER,HIGH);
delay(300);
}
digitalWrite(SUMMER,LOW);
lcd.clear();
}
}
Maybe my Clock modul is broken?
I cant find the mistake....
Thanks for your help!