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 constatat ca ceasurile RTC cu afisaj P10 sunt stabile si reglajul intensitatii merge corespunzator, am adaugat si un senzor DHT22 (AM2302).
Schema folosita de mine este cea prezentata mai jos, doar ca eu am folosit modulul numit DHT22 (care este, de fapt un senzor AM2302 si o rezistenta de 4k7 intre +5V si pinul de date). Daca aveam senzorul AM2302 il conectam ca in partea din stanga si necesita si rezistenta de 4k7.
Am modificat programul, devenit DMD2-P10-clock5.ino, care la minutele pare indica in ultimele 5 secunde din minut data, iar la minutele impare temperatura si umiditatea relativa a aerului, dupa cum se poate vedea in filmuletele:
Partea de ceas a ramas cu toate facilitatile din ceasurile anterioare:
- reglaj ceas si data (intrare in meniu cu butonul MENU si crestere sau scadere valori din cele 2 butoane, + respectiv minus)
- reglaj intensitate luminoasa in 17 trepte (5, 16, 32... 255 din 255) prin apasare a butonului -, apoi din cele 2 butoane + si -, pentru iesire se apasa butonul MENU
- schimbare intre cifre subtiri si groase prin apasarea repetata a butonului +
Un panou cu leduri verzi are urmatoarele consumuri (valorile pot avea variatii functie de numarul de cifre afisat in cazul orei sau numerele afisate, dar o idee ne putem face de cat de mult consuma):
- 1,871A (1871mA) pentru ceas,cu intensitate la maxim si cifre groase (care nu poate fi folosit in camera si citit de la distanta mica)
- 0,901A (901mA) pentru ceas,cu intensitate la maxim si cifre normale (care nu poate fi folosit in camera si citit de la distanta mica)
- 0,035A (35mA) ceas,cu intensitate la minim si cifre groase (pentru utilizare in casa)
- 0,016A (16mA) ceas,cu intensitate la minim si cifre groase (pentru utilizare in casa)
- 0,025A (25mA) pentru data, la intensitate minima
- 0,022A (22mA) pentru temperatura si umiditate relativa, la intensitate minima
Modeul de conectare pe breadboard si fire nu este foarte stabil, contactele pot fi imperfecte,etc, asa am desenat un cablaj (neoptimizat totusi) in care pot sa folosesc diversi senzori: AM2302 la care trebuie sa montez rezistenta de 4k7, senzori ca DHT22, fara rezistenta, senzor DS18B20 la care trebuie rezistenta, apoi reglaj cu cele 3 butoane fara retinere sau din encoder (inca nu am implementat toate aceste versiuni, dar pentru a fi disponibile pentru viitor). Am pus pe PCBWay la proiecte, articolul Adjusting RTC clock on P10 display astfel ca se pot comanda cablaje la ei sau la alti furnizori (prin descarcare fisiere Gerber).
Schema generala arata asa:
iar cablajul (virtual momentan)
Dupa ce voi primi cablajele, am sa postez niste poze.
Dupa ce am verificat ca ceasurile cu noua biblioteca DMD2 sunt stabile, am adaugat un al treilea buton pentru a putea avea un reglaj rapid si a nu intra in meniul de reglaj ceas si data.
Schema devine
Cele 3 butoane fac urmatoarele functii:
- daca se apasa butonul + se comuta modul de afisare intre font subtire si cel gros.
- daca se apasa butonul - se intra in modul de reglare intensitate luminoasa (brithness, semnalata prin aparitia unui punct pe primul rand de sus, in extrema stanga este minimul (PWM = 5) si in dreaptta (PWM = 255), cresterea intensitatii se face din butonul +, respectiv scaderea prin apasarea butonului -, iar iesirea si memorarea in EEPROM prin apasarea butonului MENU.
- daca se apasa butonul MENU se intra in modul de reglaj ceas si data, folosind butoane + si -, respectiv MENU/NEXT pentru trecerea la parametrul urmator, asemanator de modul cum s-a prezentat in articolul Ceas cu reglaj pe afisaj P10 de 32x16 leduri
a) ora
b) minutele
c) anul
d) luna
e) ziua
- la treapta minima 0 din 16 (PWM = 5 din 255), consum 0,02A, respectiv 0,05A
- la o treapta intermediara, 3 din 16 (PWM = 48 din 255), consum 0,20A, respectiv 0,44A
- la maxim, treapta 16 din 16 (PWM = 255 din 255), consum 1A, respectiv peste 2A
care are in descriere si fisierul cu fontul cautat (fiserul Font_6x14.h) care se descarca si muta in subdirectorul fonts unde este instalata biblioteca DMD2
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 +.
Am (re)gasit, prin cutiile mele, un panou de leduri P10 (32x16) pe care il testase acum vreo 5 ani si facusem, bineinteles, un ceas, ce folosea biblioteca dedicata DMD, dar nu reusisem sa reduc intensitatea luminoasa decat prin reducerea tensiunii, dar si asta pana la o anumita valoare, pentru a functiona stabil.
Acum am cautat pe net si am constatat ca exista biblioteca DMD2 imbunataita, ce are si functia de reglaj brightness a intensitattii, asa ca am modificat programul original pentru noua bilioteca, acesta devenind DMD2-P10-clock.ino.
Toata "smecheria" consta in comanda pinului OE a registrelor de deplasare (care comanda sau nu activarea iesirilor) cu semnal PWM (semnal cu factor de umplere reglabil), astfel ca la un factor PWM 5 din 255, cam 2% "vazut" de osciloscopul de hobby (dar si real: 5/255*100 = 1.96%), consumul afisajului este de sub 20mA