Dupa ce a sosit cablajul, l-am echipat cu conectorii mama si tata si am testat ceasurile anterioare, apoi am trecut la alt ceas, unul cu 2 panouri led P10, chiar daca am unul rosu si unul verde.
Schema de conectare este, evident, identica, doar ca se pun 2 panouri in serie
Prima data am modificat rapid programul ultimului ceas si acum acesta devine DMD2-P10-clock8.ino si din filmuletele urmatoare se observa modul de functionare:
ulterior, am lucrat mai mult la program, acesta devenind DMD2-P10-clock8a.ino care are ceasul mai in drepta si astfel imi permite sa afisez altfel diverse informatii:
- ora in format de 24 de ore cu caractere normale (subtiri)
- ora in format de 24 de ore cu caractere groase
- ora in format de 12 ore cu caractere normale
- ora in format de 12 ore cu caractere groase
In filmuletele urmatoare se vede mai bine modul de afisare cu caractere normale sau groase si cum se prezinta data si temperatura (si umiditatea cand sunt caractere normale)
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, plus 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 +.
Dupa ce m-am jucat putin cu AI-ul si m-a ajutat sa introduc un text deplasabil la ceasul cu animatii tip Morphing Clock pe un afisaj RGB P10 in care se folosea biblioteca PxMatrix, am zis sa testez capacitatea AI-iului de am scrie un cod complet, dandu-i informatii generice si doar aratandu-i unde greseste.
Initial, tot combina comenzi de la alte biblioteci sau pozitionarea unor texte sau puncte nu era conform indicatiilor.
Bun, am ales un afisaj P10 cu leduri rosii (deci monocrom), cu interfata HUB12 ce poate fi controlat foarte bine cu biblioteca DMDESP.
Initial am solicitat doar sa fie un ceas in stilul "Morphing Clock" si a iesit un ceas doar cu ore si minute din numere din 7 segmente, dar groase, iar secundele, reprezentate prin 2 liniute, sunt animate.
Vazand ca "se poate", am dorit sa se schimbe modul de afisare, ca la ceasul de la care am pornit, adica un ceas cu numere din 7-segmente cu tranzitii animate (Morphing Clock) si in partea de sus o informatie despre data.
A rezultat un ceas similar, doar, in acest moment, ca in partea de sus a fost pusa data (ziua si luna).
Modul de conectare dintre placa Wemos D1 si afisajul P10 cu interfata HUB12 pentru a functionata cu biblioteca DMDESP este simpla si in realitate.
In mica pauza de sarba(u)tori, am reusit sa ma relaxez cu Arduino. Afisajul cu interfata P10 si realizat din 32x16 leduri l-am mai folosit cand am realizat cantarul pentru 200kg.
Initial, am vrut sa fac un ceas cu ESP8266 cu obtinere ora de pe un server NTP, dar nu am fost multumit de rezultat, asa ca am renuntat la acel proiect.
Am gasit pe net articolul Project I - 19 Digital Clock using LED Matrix P10 Module (Arduino Based) si de acolo am folosit doar schema de conectare, care este cea pentru libraria DMD, completata cu partea de conectare pe i2c a modului de ceas RTC cu DS1307 (DS3231).
In prima faza, am realizat ceasul se regleaza doar de la calculator, dacae conectat la PC prin cablu USB si ceasul nu functioneaza preia data de la calculaor automat, dar daca ora este diferita, este necesar sa se activeze ultima linie din setup prin indepartarea // din fata:
incarcarea programuluui, apoi repunerea semnelor // pentru a "comenta" linia, adica e doar un comentariu, nu e o linie activa:
Am folosit, pentru inceput, doar afisarea orei si am pus punctele de secunda sa fie animate (sa "bata" secunda), sketch-ul este DMD-P10-clock.ino.
Mentionez ca afisajul trebuie alimentat separat dintr-o sursa capabila de 5A si minim 2A, eu folosind surse reglabile, una liniara cu control digital si apoi una in comutatie deoarece puterea disipata pe cea liniara pornea des ventilatoarele de racire si ma deranja. Cu aceasta ocazie am constatat ca pot regla intensitatea luminoasa prin alimentarea la o tensiune de cca 3,1V (si Arduino este alimentat impreuna cu afisajul, pentru a fi ceva independent).
Cateva poze:
Am facut mai multe filmulele, pentru a observa mai bine cum apare ora si nivelul luminos:
Deoarece am primit multe comentarii dupa postarea filmuletelor pentru a afisa si data si sa existe si posibilitate de reglaj din butoane sau tastatura, o sa continui, in limitata timpului disponibil, acest proiect.
Am modificat un pic programul ceasului anterior, ca in formatul de 24 de ore sa nu arate pictograma de 24 de ore ci temperatura cu caractere mici, in rest raman valabile toate facilitatile ceasului anterior, dupa cum se vede in filmuletele urmatoare:
Din teste, ledurile de echipeaza noile panouri sunt mai luminoase asa ca am ales sa reduc tensiunea de alimentare ale panourilor pana la 3,0-3,7V, ca sa nu ma deranjeze la distanta de jumatate de metru de ele, asa ca la intensitatea minima, consumul este mult redus:
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.
La apasarea scurta a butonului MENIU se intra la reglajul orelor, iar prin apasarea repetata sau tinerea apasata a butonului PLUS se mareste valoarea pana la 23, in cazul orelor, dupa care revine la 0.
La urmatoarea apasare a butonului MENIU se pot modifica minutele din butonul PLUS (maxim 59)
Se trece la reglarea anilor prin apasarea scurta a butonului MENIU si se modifica din butonul PLUS (maxim 2039)
La apasarea butonului MENIU se trece la reglajul lunii, schimaband valoarea prin apasarea repetata sau tinerea apasata a butonului PLUS (maxim 12)
Ultimul reglaj este cel al zilelor, intrandu-se prin apasarea butonulu MENIU si se schimba valoarea din butonul PLUS (valoarea maxima difera de la luna la luna, sistemul de alegere este preluat de la Andy Doz).
Mentionez ca am incerc si fontul mai mare, din exemplul librariei, dar cifrele sunt lipite si ora e greu de citit.
Singura problema ce nu am reusit s-o rezolv din soft este aceea a reglajului intensitatii, Rezolvarea momentana este acea a alimentarii cu tensiune reglabila, 5V pentru maxim si 3,1-3,2V pentru minim.
07.01.2020
Am reluat testele cu un caracterul mai mare,