duminică, 1 februarie 2026

Ceas RTC cu cifre uriase pe afisaj i2c LCD4004

    Am mutat montajul provizoriu al interfetei i2c la afisajul LCD4004, pe baza schemei prezentate in articolul anterior doar ca am introdus o rezistenta de 470Ω in serie cu ledul/ledurile de fundal (pentru a reduce curentul de la cca 200-230ma la 3.8mA). Luminozitatea fundalului este suficienta sa nu deranjeze noaptea, dar suficienta sa fie informatia vizibila pe timp de zi.
    Montajul a fost asamblat pe un cablaj de test si firicele, dar mult mai bun ca cel de pe breadboard, pentru ca am pus si un minibreadboard ca suport/distantier.
Acest cablaj-adaptor a fost conectat la montajul asamblat pe cablajul de la Vlad Gheorghe (prezentat si in articolul cu termostatul pe afisaj LCD4002). 
    Schema finala este simpla, continand doar Arduino Nano si modulul RTC (cu DS3231), pe langa afisajul LCD4004 cu interfata i2c.

    Programul adaptat este LCD4004_RTC_clock_huge_2.ino arata doar ora 

dupa cum se vede in filmuletele:

ceas RTC cu cifre uriase pe afisaj i2c LCD4004

RTC clock with huge numbers on i2c LCD4004 display

ceas RTC cu cifre uriase pe afisaj i2c LCD4004 (2)

RTC clock with huge numbers on i2c LCD4004 display (2)

ceas RTC cu cifre uriase pe afisaj i2c LCD4004 (3)

RTC clock with huge numbers on i2c LCD4004 display (3)

ceas RTC cu cifre uriase pe afisaj i2c LCD4004 (4)
   Apoi am adaugat data in ultimele secunde ale fiecarui minut, 
programul devenind LCD4004_RTC_clock_huge_2b.ino, acest lucru se vede in filmuletele:
A urmat introducerea temperaturii preluate de la senzorul din DS3231, care este afisata in ultimele secunde ale minutelor impare,
 iar data in ultimele secunde alea minutelor pare. 
    Prima versiune de program este LCD4004_RTC_clock_huge_2c.ino
apoi am modificat modul de stergere si afisare informatii, obtinand versiunea imbunatatita LCD4004_RTC_clock_huge_2d.ino cu care am facut 2 filmulete:

Termostat reglabil cu ceas RTC si afisaj LCD4002

     Dupa cum scriam intr-unul din articlele anterioare, am achizitionat pe langa afisajul LCD4004 si unul LCD4002, care a fost mai prietenos ca cel cu 40 coloane si 2 randuri, deoarece si interfata i2c achizitionata separat a fost fabricata pentru el (atat afisajul, cat si interfata i2c sunt produse de acelasi producator, asa ca acolo sunt si informatii tehnice, oricum, cel putin afisajul alfanumeric este o copie de la Crystalfontz).

    Dupa lipirea interfetei i2c la afisaj, am verificat ce adresa are interfata i2c, pe un montaj ce avea si un modul RTC cu DS3231 ce are si o memorie EEPROM:

    Primul test a fost sa reproduc un proiect gasit pe net

dupa cum se vede in filmuletele urmatoare:

test ceas RTC pe afisaj alfanumetic i2c LCD4002

test RTC clock on i2c LCD4002 display

test ceas RTC pe afisaj alfanumetic i2c LCD4002 (2)

test RTC clock on i2c LCD4002 display (2)

in aceste teste a fost folosit programul LCD_4002_clock.inoDin pacate, autorul s-a chinuit sa nu foloseasca biblioteci, asa ca mi-a fost greu sa fac modificari rapide, asa ca am ales sa aleg un proiect usor de modificat.

  Am ales sa modific termostatul reglabil cu ceas RTC si afisaj LCD2004 pentru care aveam montaj (cablaj de la Vlad Gheorghe). Schema de conectare nu se modifica cu nimic, doar afisajul este diferit ca "rezolutie" (desi are acelasi chip, HD44780)

    
    Programul folosit este LCD4002_big_font_clock_thermometer_v1.ino si pe langa modificari care sa simuleze un afisaj LCD2004 (adica 20 de coloane si 4 randuri), am folosit senzorul din DS3231 in loc sa folosesc senzorul DS18B20 deoarece nu a fost la indemana la momentul testului (partea de senzor DS18B20 a fost comentata, nu stearsa, pentru a putea fi usor de adaptat pentru acel senzor).
   Am facut si filmuletele
Ca idee, ce era afisat, in proiectul original, pe randul al treilea este afisat pe primul rand de la coloana 21 la 40, iar ce era pe randul al patrulea este afisat pe randul al doilea, la fel de la coloana 21 la 40.

    Pentru a folosi senzorul DS18B20 e suficient sa se comenteze linia care citeste temperatura de la senzorul de pe DS3231:



duminică, 25 ianuarie 2026

Afisaj alfanumeric LCD4004 controlat prin interfata i2c de Arduino (2)

    Dupa cum am prezentat in articolul anterior, am reusit sa "aprind" afisajul alfanumeric LCD4004.

   Am creat caractere uriase dupa modelul prezentat in articolul Ceas RTC cu afisaj serial

Am utilizat un fisier tabelar pentru a simula si asezarea cifrelor pentru a arata bine ca ceas cu ore, minute si secunde: 

iar programul stabil este LCD4004_test_huge_1e.ino cu care am facut urmatoarele filmulete:

simulare ceas cu cifre uriase pe afisaj LCD4004 cu interfata i2c

simulated clock with huge numbers on i2c LCD4004 display

simulare ceas cu cifre uriase pe afisaj LCD4004 cu interfata i2c (2)

simulated clock with huge numbers on i2c LCD4004 display (2)

Am facut mici imbunatatiri la modul de schimbare al timpului, dar si am modificat cifra 4, programul devenind LCD4004_test_huge_1f.ino

simulare ceas cu cifre uriase pe afisaj LCD4004 cu interfata i2c (3)

simulated clock with huge numbers on i2c LCD4004 display (3)

    Schema de conectare a ramas aceeasi:

Afisaj alfanumeric LCD4004 controlat prin interfata i2c de Arduino

     Am achizitionat, din curiozitate, 2 afisaje alfanumerice, unul LCD4002 si unul LCD4004. Dupa cum le apare si numele, primul are 40 coloane si 2 randuri, iar cel de-al doilea 40 coloane si 4 randuri.

    Afisajul LCD4002 a fost conectat la o interfata i2c si a functionat fara probleme (o sa fac un articol si cu el ulterior).

    In schimb, afisajul LCD4004 mi-a dat un pic de lucru, dar dupa ce am cautat pe internet, am gasit o discutie de prin anii 2019-2020 cu titlul LCD 4004 ( 40x4 ) I2C working. Urmand informatiie de acolo, dar si dupa ce am studiat niste fise de catalog ale afisajului original si al reproducerilor (le gasiti incarcate in directorul docs unde am pus si biblioteca si programele cu acest afisaj -> github.com/tehniq3/LCD4004_i2c

    Afisajul este contruit ca 2 afisaje LCD4002 (datorita memoriei necesare driver-ului ST7066 compatibil cu clasicul HD44780), asa ca schema de conectare la interfata i2c (cu integratul PCF8574) este

care respecta informatiile gasite pe forum-ul Arduino in discutia mentionata la inceput
   Primul test a fost facut, bineinteles, cu ce era pe forum, programiorul numit LCD4004_test.ino, iar biblioteca, utilizata si ulterior, este LiquidCrystal_I2C_4004.
    Am facut si niste filmulete:

    In zilele urmatoare o sa postez informatii si despre numerele uriase create pentru a simula, apoi realiza un ceas RTC, inclusiv cu reglaj de ora cu encoder.

luni, 29 decembrie 2025

Ceas cu reglaj si termometru/higrometru pe afisaj din 2 panouri led P10 (4)

     Fata de articolul anterior am modificat ca la apasarea butonului + sa se schimbe ora din format de 24 de ore in cel de 12 ore, in loc de font gros (preferat) sau subtire.

   Schema este aceeasi,

doar s-a modificat un pic progamul, care devine DMD2-P10-clock9a.ino.

   Am folosit cablajul postat la PCBWay: Shared Projects, dar am pus conector mama si cablu panglica, pentru a fi mai usor de controlat cand fac filmulete, fata de cablajul echipat cu o mufa tata, care se infigea direct in mufa ,ama de pe primul panou led


   Prin apasarea butonului la diverse ore,vor putea obtine:
- 12 noaptea (12 AM sa ora 0), indicatorul A apare intre ore si minute
- 6 seara (6 PM sau ora 18), indicatorul PM apare explicit in stanga
    Am facut niste filmulete, in care se descrie mai explicit modul de afisare si reglaj, primele 2 sunt de tip "short" pentru a fi vizionate usor pe telefoane (portret/vertical), deaorece asa sunt mai multe vizualizari 😇

ceas RTC pe 2 panouri P10 (9)

RTC clock on 2 P10 displays (9)

ceas RTC pe 2 afisaje P10 (10)

RTC clock on 2 P10 displays (10)

 

duminică, 14 decembrie 2025

Ceas cu reglaj si termometru/higrometru pe afisaj din 2 panouri led P10 (3)

   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.
Cu aceaasi schema ca si cea din articolul anterior 
si acelasi montaj (pe acelasi cablaj) la care am adaugat o dublura a butoanelor (pentru a nu mai misca panourile, in timpul filmarii)

dar cu programul modificat (DMD2-P10-clock9.ino) si am facut filmuletele:
   Ca si in testele anterioare, am redus tensiunea pe panouri si la 3V am 20-30mA cand intensitatea este la minim.