Branez je napisal/a: |
Ima ta tvoj modul DS1307 lastno napajanje, oziroma baterijski backup? |
mucek je napisal/a: |
Pa je baterija dobra? Zmeri napetost ... |
rplink3r je napisal/a: |
Da nimaš slučajno tako narejeno, da Arduino compile time vsakič naloži na DS?
Nekateri primeri so imeli podobno, tisto vrstico sem ven brisal. |
marko11 je napisal/a: |
Mogoče pa obstajajo kakšna tovarniška navodila glede zamenjave časa na DS1307?
Verjetno se je že kdo spopadel s to zadevo. lp, |
Koda: |
#include <DS1307.h> DS1307 clock; //(0x68) RTCDateTime dt; void setup() { //--------------------------------------------- DS1307 Serial.println("Inicializiraj DS1307");; clock.begin(); if (!clock.isReady()) { clock.setDateTime(__DATE__, __TIME__); // Rocno vnasanje (YYYY, MM, DD, HH, mm, SS //clock.setDateTime(2021, 4, 30, 19, 53, 00); } } void loop() { dt = clock.getDateTime(); Serial.print("Datum in ura: "); Serial.print(dt.year); Serial.print("-"); Serial.print(dt.month); Serial.print("-"); Serial.print(dt.day); Serial.print(" "); Serial.print(dt.hour); Serial.print(":"); Serial.print(dt.minute); Serial.print(":"); Serial.print(dt.second); Serial.println(""); } |
Koda: |
#include <DS1307.h> DS1307 clock; //(0x68) RTCDateTime dt; byte incomingByte = 0; // for incoming serial data (sprejeti byte) byte StareSek = 0; // Stare Sekunde, da časa ne izpisuje prepogosto, temveč vsako sekundo void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { dt = clock.getDateTime(); // loop() lepo bere datum in čas BereSerP(); // Bere Serijski Port if(dt.second != StareSek) { // Izpiše samo, kadar so nove sekunde različne od starih Serial.print("Datum in ura: "); Serial.print(dt.year); Serial.print("-"); Serial.print(dt.month); Serial.print("-"); Serial.print(dt.day); Serial.print(" "); Serial.print(dt.hour); Serial.print(":"); Serial.print(dt.minute); Serial.print(":"); Serial.print(dt.second); Serial.println(""); StareSek = dt.second; } } // void loop() void BereSerP() // Bere Serijski Port { if (Serial.available() > 0) // je kaj sprejeto? { // read the incoming byte: incomingByte = Serial.read(); // je } else return; // nič ni sprejetega, lahko leti ven switch(incomingByte) // preveri sprejeto in { // spremeni ustrezno dt vrednost case 0: break; // ničla 0x00 (brez narekovajev): ne stori ničesar case 'Y': dt.year++; break; // črka Y case 'y': dt.year--; break; // črka mali y case 'M': dt.month++; break; case 'm': dt.month--; break; case 'D': dt.day++; break; case 'd': dt.day--; break; case 'H': dt.hour++; break; case 'h': dt.hour--; break; case 'N': dt.minute++; break; // miNute case 'n': dt.minute--; break; // miNute case 'S': dt.second++; break; case 's': dt.second--; break; default: incomingByte = 0; // če je znak neveljaven, ga izbriše } if(incomingByte > 0) // bil je veljaven { clock.setDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second); // Vpiše spremembo nazaj v DS1307 incomingByte = 0; // v vsakem primeru izbriše sprejet znak StareSek = 255; // da takoj izpiše spremembo } } // void BereSerP() |