miercuri, 29 octombrie 2025

Lumina de fundal controlabila la afisaje alfanumerice (1602 sau 2004) cu interfata i2c

    De obicei, la afisajele alfanumerice LCD1602 sau LCD 2004 cu interfata i2c lumina de fundal se aprinde sau se stinge cu o comanda de genul lcd.backlight(), respectiv lcd.noBacklight().


   Am gasit in articolul Dimming 16×2 and 20×4 LCD displays ca sunt 3 variante, dar cea mai simpla este cea in care se elimina jumperul si se conecteaza un fir de la pinul dinspre bareta cu multi pini al interfetei i2c la un pin al placii Arduino cu iesire PWM (3,5,9,10 sau 11), eu alegand pinul 11.

  In mod normal, cu jumper-ul conectat, schema de comanda a ledului de fundal este:

iar cand se vrea comanda ledului cu ajutorului iesirii PWM prin comanda analogWrite(11,127) de exemplu (aprinderea cu comanda lcd.backlight() ramane activa si ea pentru a comanda tranzistorul)
asa ca la mine arata asa, in proiectul de termostat reglabil cu ceas RTC cu senzor SHT31 prezentat in articolul Termostat reglabil cu ceas RTC si afisaj LCD2004 (2)

   Mai multe detalii, inclusiv o zona cu posibilitate de schimbare on-line a valorilor frecventei si factorului de umplere (PWM = 0..255 din 255), vedeti articolul Arduino PWM analogWrite() Tutorial – Analog Output, eu am facut niste capturi de ecran doar pentru reglajul factului de umplere:
  
   Programul termostatului cu facilitatea de reglare din encoder si memorare a intensitatii luminoase a fundalului este big_font_clock_thermometer_v6a.ino.
   Am facut si 2 filmulete:

duminică, 26 octombrie 2025

Termostat reglabil cu ceas RTC si afisaj LCD2004 (2)

    Am modificat proiectul anterior unde aveam un senzor DS18B20 si l-am inlocuit cu un senzor pe i2c de tip SHT31 (AHT31), pe care il folosisem si in proiectul numit Ceas RTC cu caractere mari si date meteo pe afisaj LCD2004 (3).

   Schema acestui proiect este 

   Pentru a fi sigur ca totul este in regula, am incarcat programul de cautare periferice i2c (i2c_scanner) s am obtinut:
- 0x27 este adresa interfetei pentru afisajul LCD2004
- 0x68 este adresa RTC-ului (DS3231)
- 0x57 este adresa EEPROM-lui de pe modului RTC
- 0x44 este adresa senzorului SHT31 (AHT31)
   Noul sketch-ul pentru termostatul cu senzor SHT31 este big_font_clock_thermometer_v6.ino si in afara de citirea diferita a noului senzor, am mai adaugat si umiditatea relativa, ca tot era disponibila.
La o apasare scurta a butonului de pe encoder se schimba afisarea cu caractere mari a orei sau a temperaturii
  La apasarea lunga (mai mult de 3-4 secunde) se ajunge la modul de reglare a temperaturii dorite, a histerezisului, a datei si orei, dupa cum se va vedea in filmuleletele urmatoare:

sâmbătă, 25 octombrie 2025

Ceas RTC cu caractere mari si date meteo pe afisaj LCD2004 (3)

   Imediat dupa ce am modificat programul ceasului cu caractere mari pentru Gabi Loreti (unde am folosoit un senzor DHT22 si un modul cu AHT20 si BMP280), am intrat in posesia unor senzori SHT31 (AHT31), care au interfata i2c. Am studiat un pic documentatia de pe internet, am schimbat adresa unuia sa ii pot folosi pe amandoi, ca si la ceasul RTC cu caractere mari si date meteo pe afisaj LCD2004 in locul celor 2 senzori DHT22 (AM2302)

Dupa ce am adaptat montajul de test folosit la Termostat reglabil cu ceas RTC si afisaj LCD2004
si am incarcat programul i2c_scanner pentru a identifica perifericele de pe i2c
obtinand
Stiu ca afisajul are adresa 0x27 (mai poate fi 0x3F), modulul de ceas RTC are 0x68 (DS3231), asa ca cei 2 senzori SHT31 (AHT31) au 0x44 si 0x45, cum ma asteptam.

   Materialele care merita studiate, macar, pentru a va face o idee despre acest senzor SHT31 sunt

https://lastminuteengineers.com/sht31-temperature-humidity-sensor-arduino-tutorial/

https://docs.cirkitdesigner.com/component/38dec0c1-cb6f-4de8-aa59-3a3d5b453891/sht31

https://github.com/adafruit/Adafruit_SHT31

    Schema adaptata este

si programul rescris si adaptat este big_font_weather_clock_v2b.ino.
   Ca de obicei am facut filmulete:

vineri, 24 octombrie 2025

Ceas RTC cu caractere mari si date meteo pe afisaj LCD2004 (2)

   La rugamintea lui Gabi Loreti am inlocuit unul din senzorii DHT22 (AM2302) din proiectul anterior cu un senzor combinat AHT20 cu BMP280.

   El e pasionat, in general, doar de afisaje VFD sau OLED, dar i-a placut modul cum arata informatiile pe un afisaj alfanumeric LCD2004, asa ca am modificat programul proiectului anterior si acum acesta este big_font_weather_clock_v2a.ino.
    Gabi a facut mai multe poze pentru a face un articol, avand in vedere ca poate fi interesant si pentru altii:
   Noul mdulul contine 2 senzori ce sunt conectati pe i2c, iar la cautarea cu programul (care ar trebui sa fie arhicunoscut) i2c_scanner obtinem
si daca mai cautam pe internet gasim ca senzorul AHT20 este conectat la adresa 0x38, iar senzorul BMP280 la 0x77 (dar poate fi si 0x76).
   Schema de conectare este simpla
  Deoarece acest modul ce contine acesti senzori mi s-a parut interesant, am comandat si eu cativa, si am facut si eu teste:
inclusiv niste filmulte:



vineri, 17 octombrie 2025

Ceas RTC cu reglaj + termometru si higrometru pe afisaj serial VFD VD7220

    Am modificat ceasul RTC cu termometru si higrometru pe afisaj VFD CD7220 sa pot regla ora si data,

 asa ca schema se modifica usor, adaugand doar 3 butoane fara retinere

iar alimentarea am facut-o cum am prezentat in articolul anterior.
   Am facut si filmulete, in care am folosit programul VFD_clock4.ino

Ceas RTC cu termometru si higrometru pe afisaj VFD CD7220

    Dupa ce am testat cu succes ceasul RTC (dual) pe afisaj VFD CD7220 am considerat ca merita adaugate niste informatii despre temperatura si umiditate relativa, care pot fi citite cu senzorul DHT22 (AM2302).

   Schema modificata este

   Alimentarea a fost facuta, ca si la tetele ceasului dual, cu 24V din sursa externa, iar placa Arduino, modulul RTC si senzorul DHT22 (AM2302) din sursa de 5V de pe placa (provizoriu, pentru teste)

Am facut mai multe filmulete in care am folosit pogramul VFD_clock2.ino
iar cu programul modificat VFD_clock3a.ino

Ceas RTC (dual) pe afisaj VFD CD7220

    Am intrat in posesia unui modul cu afisaj CD7220 care mi-a dat un pic de bataie de cap, in primul rand este o eticheta cu 24V, asa ca am inceput sa "sap" pe internet si cel mai bun articol, numit Shack dual time Clock with POS VFD, care este al unui conational (indicativ radioamator YO3HJV)

   Schema de testare este una simpla:
si pentru alimentarea modulului, am folosit o sursa de 24V (intial alimentarea conectata la firele de pe cablul cu mufa de retea (portocaliu la masa si negru la +24V, ulterior cu fire separate: negru la masa si rosu pla plus), iar pentru a alimenta placa Arduino si modulul RTC (cu DS3231) sursa interna de pe modul ce livreaza 5V.


   Programul original a suferit mici modificari pentru a fi optim pentru mine, devenind VFD_clock1.ino.
Am facut si 2 filmulete:
PS: M-am gandit sa fac o varianta de sine statatoare, optim este cu alimentare la tensiune mare si alimentarea cu reducator de tensiune exterior la 5V a placii Arduino si a modului RTC, eventual a unui senzor sau a unei placi Wemos D! (ceas NTP) , dupa cum voi pezenta in articolele urmatoare. 
   Am testat si alimentarea cu 19V deoarece se gasesc prin targuri sau pe site-ri de vanzari alimentatoare de laptopuri, si rezultatul este incurajator deoarece si consumul scade