M-am gandit sa fac si un ceas ce foloseste modul RTC de la care sa preiau ora, data si chiar si temperatura, sa fie si reglabil din encoder, dupa ce testasem asta pe afisajul LCD4004 (l-am prezentat in articolul anterior).
doar ca nu am conectat senzorul DS18B20, temperatura este preluata de la senzorul din integratul DS3231 din modulul RTC (bineinteles ca afisajul este LCD4002).
Ca si la interfata i2c de la afisaul LCD4004 am inlocuit un strap (rezistenta 0Ω) cu una de 470Ω si am scazut curentul prin ledul/ledurile de fundal de la 200-230mA la 3,8mA (2,82V cadere de tensiune). Valoarea curentului este suficienta ca lumina ledului sa nu deranjeze noaptea si sa fie vizibila informatia de pe afisaj pe timp de zi.
Dupa ce am primit cateva propuneri de schimbare a modului de afisare, am ales sa las ora cu caractere mari in stanga, pe primul panou, iar pe al doilea sa fie secundele cu caractere mici si temperatura cu umiditarea relativa folosind caractere normale. In ultimele 4-5 secunde ale fiecarui minut afisez data.
Am modificat programul ca in cazul.formatului de 12 ore sa fie afisat AM sau PM explicit pentru ore ce nu au zeci de ore (1,2,.. 9), iar pentru celelalte un A sau P intre ora si mimute.
Deoarece ceasurile de genul asta au succes in tarile din Asia unde se foloseste mult formatul de 12 ore, am modificat programul sa pot selecta din meniu formatul de 24-ore (militar) sau 12-ore.
Dupa ce am modificat cu succes ceasul simplu, dupa cum am prezentat in articolul anterior, am facut aceleasi modifcari si ceasului cu reglaj prin schimbarea bibliotecii DMD cu biblioteca DMD2 pentru a putea reduce intensitatea luminoasa (brightness).
La nivelul minim al intensitatii (5)
cu fonturi subtiri, fonturi groase si data consumul este destul de redus
iar cand intensitatea este maxima,
curentul consumat este semnificativ
Schema folosita este identica cu cea a ceasului testat acum 5 ani:
Programul adaptat este DMD2-P10-clock3c.ino care include, pe langa reglajul orei si datei (prin apasarea butomului MENU/NEXT si apoi repetata a butonului +) si schimbarea modului de afisare a orei cu caractere subtiti, apoi groase prin apasarea butonului +.
Dupa ce am fost multumit de modul de afisare, reglare si stabilitate la proietul anterior, de Ceas RTC cu caractere mari si termometru pe afisaj LCD2004 am trecut s la partea de proiect mult mai util, un termostat reglabil cu ceas RTC.
Schema deriva din cea a ceasului, doar ca am pus 3 leduri, unul rosu pentru temperatura scazuta (sub pragul de temperatura), unul verde pentru temperatura normala (valoare peste pragul de temperatura) si unul galben pentru a simula comanda la centrala / calorifer electric. etc (care se aprinde cand temperatura este sub pragul de temperatura si se stinge la depasirea pragului de temperatura plus valoarea histerezisului)
La o apasare scurta se comuta afisarea cu caractere mari a orei cu cea a temperaturii, apoi iar ora, etc.
Cateva exemple:
- temperatura mai mica decat pragul reglat (led rosu aprins, led galben aprins, adica incalzitor pornit, pe afisaj apare si o steluta indicand pornirea sistemului de incalzire)
- temperaura peste pragul reglat, dar mai mica decat pragul de oprire (led verde pornit indicand faptul ca temperatura e mai mare decat valoarea reglata, led galben aprins insemnand ca sistemul de incalzire e pornit, iar pe afisaj este si steluta)
- temperatura este peste pragul de decuplare (led verde aprins, led galben stins indicand oprirea sistemului de incalzire, iar pe ecran nu mai apare steluta)
Daca apasam lung pe buton (mai mult de 3-4 secunde), se intra in meniul de reglaj, de data asta avem: