Dupa ce am constatat ca ceasul RTC reglabil pe afisaj LCD4002 este stabil, am zis sa transfer proiectul pe afisajul LCD4004, pentru ca acele caractere pe 2 randuri sunt destul de prietenoase.
Schema de test este aceeasi, care include interfata i2c catre afisajul LCD4004, o schema clasica de Arduino cu modul RTC (DS3231) si un encoder KY-040
pentru ca am folosit acelasi cablaj (e cumva un cablaj universal folosit la mai multe proiecte, schimband doar afisajul cu interfata i2c: LCD1602, LCD2004, LCD4002 sau LCD4004). Cablajula fost proiectat si realizat de Vlad Gheorghe.
Programul adaptat pentru afisajul LCD4004 este LCD4004_RTC_clock_3.ino si modul de functionare se observa in filmulete:
Ora (in format: ora, minute si secunde) este afisata pe randurile 1 si 2 cu caractere mari ("desenate" pe cele 2 randuri), iar pe randurile 3 si 4 apar la fiecare secunde: data, temperatura si nume zi
Dupa cum se observa si din filmulete, daca se apasa scurt butonul de pe encoder, in loc de ora apare un mesaj ca ceasul este realizat de mine, iar pe randurile 3 si 4 temperatura, data sau numele zilei, depinde cum e momentul:
Daca se apasa indeajuns de lung pe encoder, de intra in meniul de reglaj
- an (reglaj prin rotire stanga pentru scadere si in drepta pentru crestere valoare) si trecere la reglaj luna prin apasarea butinului de pe encoder
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.
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 😇
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:
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:
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
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.
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