Ceasul GPS cu reglaj ora locala si afisare ora in format de 12 ore sau 24 are cateva "floricale" fata de ceasul din articolul anterior.
Schema este aceeasi ca cea din articolul precedent, doar ca primul buton incrementeaza ora locala pana la UTC+14, dupa care trece la cea minima de UTC-12, iar al doilea comuta din format de 24 ore in cel de 12 ore, toate astea folosind programul ceas_neo6m_big_ro_adj_12_24h_full2.ino.
Cateva exemple, de afisare in format de 24 ore si, respetiv, 12 ore:
- ora locala UTC+2:
- ora locala UTC+4:30 (sau UTC+4.5)
- ora locala UTC+5:30 (sau UTC+5.5)
- ora locala UTC+5:45 (sau UTC+5.75)
- ora locala UTC+14
- ora locala UTC-12
Cele 2 filme ce descriu functionarea si modul de reglare sunt:
Dupa postarea filmuletului pe mai multe grupuri de pasionati Arduino, am primit sugestii pentru implementarea debounce-ului la cele 2 butoane si sa nu scriu mereu in memoria EEPROM la fiecare modificare, sa elimin si posibilitatea scrierii continue la apasare continua (defect buton cu contact permanent la masa, asa ca am implementat partea utila din exemplul aplicatiei numit DEBOUNCE
si am adaugat scrierea in EEPROM doar dupa 10 secunde la de la ultima apsare a butonului. Acest timp se poate mari, dar modificarea orei locale se face doar de 2 ori pe an, iar trecere de la formatul de 12 la 24 ore tot asa rar.
Dupa primirea unui comentariu la unul din filmulete, pentru modul de reglare al orei locale pentru UTC+5.5 (India, Sri Lank), am realizat ca nu am acoperit toate zonele. In articolul List of UTC time offsets sunt prezentate 38 de ore locale, de la -12 pana la +14, unele fiinf cu jumatati de ora, gen +3;30, altele cu sferturi de ora, gen +5.45, asa ca voi schimba modul de modificare a orei locale.
Deoarece e vorba de modificare de program, se foloseste aceeasi schema ca in articolul precedent:
In mare, ora 0:00 este ora 12:00 AM sau 12:00 (de la miezul noptii), iar ora 12:00 (din frmatul de 24 ore) este ora 12;00 PM sau 12:00 din miezul zilei (noon).
Schema de conectare este aceeasi, ca la ceasul anterior, iar programul (sketch-ul) folosit este ceas_neo6m_big_ro_adj_12_24h.ino.
Daca se apasa butonul +, ora locala creste cu o ora, iar daca se apasa butonul -, ora locala scade cu o ora. Daca se apasa simultam ambele butoane se comuta modul de afisare de la 24 ore la cel de 12 ore.
Exemple de afisare a ore 16:53, respectiv 14;54 in format de 12 ore
si ora 4;53 in format de 24 ore:
Am facut si 2 filmulete, din care se observa modul de fuctionare:
Am modificat ceas-ul GPS sa pot regla ora locala, in primul rand pentru a corecta ora vara/iarna, dar si pentru a fi util si celor ce locuiesc in alte zone, eu limitand la UTC-12 pana la UTC+12, dar pentru cei din zone peste acestea, pot modifica usor din soft, la limite.
Eu am adaugat 2 butoane fara retinere, unul pentru crestere valoare si unul pentru scadere valoare ora locala. Butonul pentru crestere este conectat la D12, iar cel de scadere este la D11, restul schemei ramane neschimbata (vezi articolul Ceas GPS).
Dupa ce m-am familiarizat cu receptorul GPS model NEO-6M (vedeti articolul precedent), am adaptat un program pentru a avea un vitezometru cu indicatii de ora si pozitie.
Cand viteza este mica, sub 10km/h, in dreapta apaare mesajul "viteza" si "km/h", iar caracterele vitezei sunt mari (am pus in articolul precedent link-uri).
Am pus initial, montajul in bord, pentru a compara viteza cu cea a vitezometrului masinii:
apoi in locul telefonului si am comparat valorile cu ale unei navigatii, rezultatele fiind foarte bune.
Cu ocazia testelor, am facut si cateva filmulete, dar in unele nu se vad bine indicatiile de pe afisaj
PS: Informatiile sunt receptionate de la satelitii GPS la 2-3 minute de la alimentarea montajului, asa ca in cel mai fericit caz aveti informatii despre ora. De asemenea, am observat ca numarul satelitilor de la care receptioneaza receptorul semnal nu este indicata uneori sau este indicata incorect.
Montajul a fost facut cat mai 'transportabil", montand socluri pentru Arduino Nano si conectori XH2.54 pentru receptorul GPS si afisaj (mai am o mufa Pentru un debitmetru, care nu se foloseste in aceasta aplicatie).
Puteti vedea cum se afiseaza informatiile am facut urmatoarele 2 filmulete: