Despre ecranul OLED 0.96" cu interfata IIC/I2C
Ecranul OLED 0.96" este unul dintre cele mai populare afisaje grafice pentru proiecte cu Arduino. Este un display monocrom, adica afiseaza doar alb pe fundal negru, dar face acest lucru extrem de clar si cu un contrast excelent, datorita tehnologiei OLED (organic light-emitting diode). Rezolutia sa este de 128x64 pixeli, suficient de mare pentru a afisa text clar, pictograme simple sau chiar grafice mici.
Un avantaj foarte mare este interfata I2C, care permite comunicarea cu placa Arduino folosind doar doua fire:
-
SDA (Serial Data) – pin A4 pe Arduino Uno
-
SCL (Serial Clock) – pin A5 pe Arduino Uno
Asta inseamna ca poti conecta usor ecranul, fara sa ocupi multi pini digitali, ceea ce il face ideal in proiecte complexe cu multe componente. De asemenea, consumul de energie este foarte redus – perfect pentru proiecte alimentate cu baterii sau pentru dispozitive portabile.
Pe langa claritate si consum, ecranul mai are un avantaj: poate fi controlat cu libraria Adafruit_SSD1306, una dintre cele mai bine documentate si usor de folosit in Arduino IDE. In proiectul nostru, folosim ecranul pentru a afisa timpul ramas pe doua randuri mari si lizibile, iar la finalul cronometrajului, afisam mesajul „STOP” pentru semnalizare vizuala.
Despre senzor touch capacitiv TTP224, 4 canale
Modulul tactil capacitiv TTP224, cu cele 4 canale ale sale, inlocuieste cu succes butoanele mecanice traditionale. Fiecare „buton” este de fapt o zona activa pe o suprafata sensibila la atingere. Cand atingi una dintre aceste zone, senzorul detecteaza modificarile de capacitate electrostatica si genereaza un semnal digital (HIGH) pe pinul corespunzator.
TTP224 functioneaza la 2.4 – 5.5V, ceea ce il face complet compatibil cu placile Arduino. Modulul are 4 iesiri digitale: OUT1, OUT2, OUT3 si OUT4, pe care le-am conectat in acest proiect la pinii digitali D2–D5. Fiecare dintre aceste iesiri controleaza o actiune a cronometrului: start/stop, cresterea timpului, scaderea timpului si setarea valorii initiale.
Practic, acest modul transforma experienta interactiva cu cronometrul intr-una moderna si foarte placuta – tot ce trebuie sa faci este sa atingi o suprafata si Arduino va reactiona imediat.
Componente necesare1 x Placa de dezvoltare compatibila Arduino R4 WiFi
1 x Ecran OLED 0.96" cu interfata IIC/I2C
1 x Senzor touch capacitiv TTP224, 4 canale
1 x Modul buzzer activ
1 x Cablu de date USB 2.0 la tip C 30 cm
1 x Breadboard 400 puncte
6 fire tata - mama
7 fire tata - tata
Schema de conectare

Cod sursa
Dupa ce ai realizat circuitul, e timpul sa introduci codul sursa, pentru a descarca codul sursa clic AICI.
Conecteaza placa de dezvoltare compatibila Arduino Uno R4 WiFi la computer folosind portul USB. Apoi, mergi la meniul Tools si selecteaza tipul de placa si portul serial pe care il folosesti (optiunile Board si Port).
Pentru acest proiect este necesar sa descarci biblioteca Adafruit_SSD1306. Pentru a incarca codul pe placa, apasa butonul Upload (simbolul cu sageata spre dreapta). In partea de jos a ferestrei, vei putea urmari mesajele de stare: Compiling Sketch, Uploading si Done. Odata ce incarcarea s-a finalizat cu succes, placa Arduino va incepe sa ruleze codul pe care l-ai incarcat.
Cum functioneaza acest proiect
Am creat un cronometru care porneste de la un timp presetat si scade pana la zero. Cand ajunge la final, un buzzer emite un semnal sonor, iar pe ecran apare mesajul „STOP”.
Ce face acest proiect special este faptul ca nu folosim butoane mecanice, ci un modul tactil capacitiv TTP224 cu 4 zone sensibile la atingere. Astfel, cronometrarea se controleaza foarte usor, doar prin atingere.
In momentul in care alimentezi circuitul, pe ecran apare timpul curent, care initial este 0. Ai patru zone tactile care controleaza totul:
-
Tasta 1: Start / Stop – porneste sau opreste cronometrarea
-
Tasta 2: +5 secunde – adauga 5 secunde la timpul curent
-
Tasta 3: –5 secunde – scade 5 secunde (fara sa coboare sub 0)
- Tasta 4: Seteaza timpul de start (incrementeaza cu 5 secunde), dar doar cand cronometrul nu ruleaza si buzzer-ul este inactiv. Daca buzzer-ul suna, aceeasi tasta il opreste.
Cronometrul scade timpul la fiecare secunda folosind functia millis()
, care este mai precisa si eficienta decat delay()
. Cand timpul ajunge la 0, buzzer-ul incepe sa sune, iar pe ecran apare mesajul “STOP”. Poti opri semnalul sonor doar cu tasta 4. Este un comportament util si intuitiv, similar cu al unui cronometru de bucatarie sau din aplicatii fizice.
Afisajul OLED se actualizeaza la fiecare secunda, afisand timpul ramas in format „MM:SS”. Dupa oprirea alarmei, poti adauga timp, reseta sau reporni cronometrul oricand doresti.
Daca ai intrebari sau sugestii, scrie-mi la electronica@bitmi.ro. Trimite-mi poze sau videoclipuri cu proiectele tale – sunt curioasa sa vad ce ai realizat!