Witam !
Poznaje układ czasowy DS1307 z baterią, wyświetlam czas i datę na wyświetlaczu i mam problem, bo raz jak odłączę i podłącze pokazuje poprawna godzinę. Natomiast innym razem jakby się resetował pokazuje same 0 w miejscach dat
Poznaje układ czasowy DS1307 z baterią, wyświetlam czas i datę na wyświetlaczu i mam problem, bo raz jak odłączę i podłącze pokazuje poprawna godzinę. Natomiast innym razem jakby się resetował pokazuje same 0 w miejscach dat
Kod:
#include <Wire.h>
#include <DS1307.h>
#include <LiquidCrystal_I2C.h>
DS1307 clock;
RTCDateTime dt;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight(); //Włącz podświetlenie
// Inicjalizacja DS1307
clock.begin();
{ lcd.backlight();
}
lcd.print("Witaj!");
lcd.setCursor(0, 1);
lcd.print("test zegarka");
delay(1000);
lcd.clear();
// Jeśli nie ustawiono daty, ustawiamy
// if (!clock.isReady())
// {
// Data i czas z momentu kompilacji
//clock.setDateTime(__DATE__, __TIME__);//Ustaw date z komputera
// }
}
void loop()
{
int sensorValue = analogRead(A0); // Wprowadz wartość wejsia analogowego
if (dt.hour <= 7) { //Jeżeli godzina 24-7 zgaś podświetlenie
lcd.noBacklight(); //Kazda inna włącz
} //
else
{ lcd.backlight();
}
dt = clock.getDateTime(); // przypisz date i czas do "dt"
lcd.setCursor(0, 0); //ustaw kursor na wyswietlaczu na 0,0
lcd.print(dt.hour); lcd.print(":"); // wyswietl godzine
if (dt.minute < 10) {// jeżeli minuta mniejsza od 10 dopisz 0
lcd.print("0");
}
lcd.print(dt.minute); lcd.print(":");//wswietl minute
if (dt.second < 10) { // jezeli sec mniejsza od 10 dopisz 0
lcd.print("0");
}
lcd.print(dt.second); lcd.print(" "); // wyswietl sec
lcd.setCursor(0, 1); // ustaw kursor na 0,0
lcd.print(dt.day); lcd.print("-"); //wyswietl dzien
lcd.print(dt.month); lcd.print("-"); // wyświetl mieciac
dt.year = dt.year - 2000; // skrocony zapis daty do 2 miejsc
lcd.print(dt.year); lcd.print(""); // wyswietl skrócona date
lcd.setCursor(9, 0); // ustwa kurdor na 12,0
float d; //wprowac zmienna float
d = sensorValue / 205; // oblicz napiecie
lcd.print("Bat");
lcd.print(d); // wyswietl napiecie d
lcd.setCursor(15, 0);
lcd.print("v");
delay(250); // czekaj 250 ms
}