joi, 22 decembrie 2022

Ceas analogic NTP pe afisaj P3 64x64 cu ESP32 (2)

     Fata de ceasul prezentat in prima parte, am mai facut mici modificari, in primul rand am testat cum sa fac reglajul intensitatii, deoarece pe timp de noapte e deranjanta intensitatea maxima a culorilor.

test control intensitate la afisaj led P3 64x64 cu ESP32

test for control the brightness at P3 64x64 led display

apoi am adaugat o fotorezistenta intr-un circuit de divizor rezisitv ca in articolul ESP32 - light sensor 
si programul meu de test a fost Analog_Clock_NTP_P3_BMZ_1b.ino, in care am pastrat conectarea divizorului rezistiv de la 3.3V la pinulGPIO 36 (adica ADCO0):
adica alimentare de la 3,3V a fotorezistentei, conectare la pinul 36 (GPIO36), apoi rezistenta de 10kΩ la masa (GND).
    Cele 2 filmulete de test sunt:
apoi am realizat ca limba de ora este ascunsa de cea de minute, asa ca am modificat programul, ca limba de secunde sa fie afisata prima, apoi cea de minute si peste cea de ore;
 programul modificat devine Analog_Clock_NTP_P3_BMZ_1c.ino.
   Am vrut sa implementez reglajul orei de vara/iarna de pe o pagina locala web, ca la alte ceasuri, dar am avut ceva dificultati, asa ca din lipsa de timp, am implementat reglajul cu ajutorul unui comutator,care muta pinul 23 la +3.3V pentru ora vara (DST)
-\respectiv la masa (GND) la ora iarna

  Despre ora de vara, respectiv de iarna puteti gasi multe informatii in articolul de la wikipedia.org/wiki/Ora_de_vara .
   Programul modifcat este Analog_Clock_NTP_P3_BMZ_1d.ino si filmuletele, care arata modul de functionare sunt:

duminică, 18 decembrie 2022

Ceas cu reglaj manual al orei si datei, alarma si termometru pe afisaj multiplexat cu 4 cifre led (cifra 3 intoarsa)


     Ceasul prezentat in continuare a fost ideea dlui Ghita Georgel, deoarece indica mai frumos secundele si deriva din ceasurile prezentate in anii trecuti, in articolul Ceas cu reglaj manual al orei si datei, alarma si termometru pe afisaj multiplexat cu 4 cifre led

sau Ceas cu reglaj manual al orei si datei, alarma si termometru cu higrometru si afisaj multiplexat cu 4 cifre led (3)
   Schema acestui ceas, desenata de dl Georgel, este
si se pastreaza masurarea temperaturi cu o simpla dioda (1N4148) si reglajul automat al intensitatii luminoase functie de lumina ambianta (doar ca acum divizorul rezistiv format din fotorezistenta si rezistenta de 10kΩ este alimentat din tensiunea de referinta de 1,1V).
    Avem si o simulare 3D (randare) a montajului si a cablajului:
   Real, montajul, in versiunea de teste, arata asa:
   Dupa incarcarea prgramului main/multiplexedclock5_1.ino, pe ecran avem
- ora:
- data (zi.luna)
- an
- temperatura
   De asemenea, programul permite posibilitatea reglajului orei de alarma (alarma activa este indicata de un punct afisaj in dreapta), dar si activarea si dezactivarea ei din meniu.
    A ramas in lista de imbunatatiri, cel putin, corectarea temperaturii din meniu, o facilitate sugerata de dl Georgel.
   In curand o sa postez si niste filmulete si un link catre proiectul cablajului.

PS1: Modificarea alimentarii divizorului rezistiv fotorezistenta - rezistenta de la 5V la 1,1V a trebuit facuta deoarece, pentru marirea preciziei la citirea temperaturii folosesc referinta de 1,1V asa ca si tensiunea de pe orice intare analogica trebuie sa fie maxim 1,1V... pana acum am folosit niste fotorezistente IPRS de prin anii '90 care avea o rezistenta mare chiar si la flux luminos mare pe ele, ceea ce facea ca tensiunea pe pinul Arduino sa fie pana in 1,1V.. acum am terminat "rezerva" si am constatat ca afisajul avea luminozitate maxima indiferent de nivelul intensitatii luminoase din preajma fotorezistentei, asa ca ma masurat tensiunea pe pin si era peste limita de 1,1V asa ca am schimbat ca divizorul rezistiv sa fie alimentat la maxim 1,1V...
   Ca idee, primele fotorezistente erau ca cele de pe randul de jos, cele noi cam ca cele de pe primul rand:

duminică, 11 decembrie 2022

Ceas analogic NTP pe afisaj P3 64x64 cu ESP32

    In urma vizionarii unui filmulet de pe net, cu un afisaj matriceal led cu rezolutie 64x64, 

si, ulterior, al altui filmulet, cu acelasi proiect
am incercat sa compilez sketch-ul din descrierea primului video si am avut probleme doarece nu exista fisierul fontului mic (acum este).
   Am observat ca am nevoie de 2 biblioteci, 
- DS1307ESP: https://github.com/3tawi/DS1307ESP
   Deoarece in biblioteca de control a afisajului exista doar un font
trebuie copiat fontul descarcat odata cu sketch-ul in subdirectorul font al acestei biblioteci:
si acum sketch-ul se compileaza
   Am comandat afisajul, care arata asa, fiind inscriptionat 
   Despre acest tip de afisaj puteti gasi o multime de informatii in articolul RGB-Matrix-P3-64x64
   Conform sketch-ului ceasului, conectarea dintre placa cu ESP32 si conectorul HUB75 al afisajului P3 64x64 este:
Prima placa cu ESP32, pe care am gasit-o, este un ESP32 DevKit v4

asa ca am desenat rapid o schita de conectare
sa imi fie usor de realizat montajul pe breadboard (de fapt, doua, una langa alta)
Atentie, conectorul este inscriptionat gresit, D este notat GND (intre B si LAT).

    Dupa incarcarea sketch-ului, am avut probleme, ca nu am avut antena externa (placa de am eu necesita)
dar pana la urma, pe afisaj a aparut ceasul


   Cu aceasta ocazie, am masurat si consumul (informativ):
- doar afisajul
- placa cu ESP32, intre 70 si 190mA

deci maxim 330-350mA la 5V, putandu-se alimenta ceasul dintr-un "incarcator de telefon".
   Am adaptatt sketch-ul din primul filmulet, inlocuind doar datele retelei Wi-Fi locale si fusul orar al Romania (+2, in perioada de iarna), deci sketch-ul folosit este Analog_Clock_NTP_P3_BMZ_0.ino
si am realizat 2 filmulete:
   Dupa cum spuneam si prin filmulete, ma deranja modul de schimbare la fiecare secunda a culorilor, asa ca am modificat sa fie la fiecare minut. Programul modificat, si folosit in filmuleltele urmatoare,  este Analog_Clock_NTP_P3_BMZ_1.ino