Cum se conecteaza senzorul de temperatura DS18B20 la Arduino Uno R4?

Cum se conecteaza senzorul de temperatura DS18B20 la Arduino Uno R4?
Salutare! Sunt Oana de la Bitmi.ro si astazi vreau sa iti arat un proiect foarte simpatic, in care afisam temperatura masurata cu senzorul DS18B20 pe un ecran TFT color de 1.8 inch, 128x160 pixeli. Ca sa facem lucrurile mai atractive, am adaugat si un mic element grafic: un soare galben desenat direct pe ecran, alaturi de valoarea temperaturii.


Despre senzorul de temperatura DS18B20


DS18B20 este un senzor digital de temperatura foarte popular in proiectele cu Arduino. El functioneaza pe magistrala OneWire, ceea ce inseamna ca putem conecta mai multi senzori pe un singur pin de date. In proiectul nostru folosim varianta cu trei fire (VCC, GND si Data).
Un detaliu foarte important la acest senzor este faptul ca pe linia de date trebuie adaugat un rezistor de 4.7kΩ intre pinul Data si VCC. Acest rezistor se numeste „pull-up” si are rolul de a mentine linia de comunicatie stabila. Fara el, senzorul nu poate transmite corect semnalele catre Arduino, iar in loc de temperatura reala vei vedea adesea valori eronate precum -127°C sau 85°C.

 

Despre ecranul TFT de 1.8"

 

Ecranul TFT color de 1.8 inch, cu driver ST7735, este un mod excelent de a afisa informatii vizuale in proiectele cu Arduino. Se conecteaza prin interfata SPI, ceea ce inseamna ca folosim un numar mic de pini pentru a transmite datele. In plus, ecranul ne permite nu doar sa afisam text, ci si sa desenam forme, linii, cercuri sau chiar imagini.

In proiectul de astazi, dupa ce afisam titlul „Atelierul Bitmi” la pornire, am folosit functiile grafice din libraria Adafruit_GFX pentru a desena un soare galben: un cerc simplu pentru discul solar si mai multe linii radiale pentru raze. Este o metoda simpla, dar foarte eficienta, prin care putem adauga un element vizual placut pe ecran.

Afisarea unui element grafic pe ecranul LCD


In acest cod, se creeaza un mic desen grafic care reprezinta un soare, folosind functiile din libraria Adafruit GFX pentru afisajul TFT. Totul incepe cu stabilirea coordonatelor centrului, x = 64 si y = 40, care indica pozitia unde vrem sa apara soarele pe ecran. In jurul acestui punct central, se deseneaza mai intai cercul galben cu functia tft.fillCircle(x, y, 15, ST77XX_YELLOW). Acesta are raza de 15 pixeli si simbolizeaza discul solar.

A doua parte a codului este bucla for, care ruleaza de la 0 la 360 de grade, din 45 in 45. Aceasta inseamna ca vom desena cate o raza la fiecare 45 de grade, obtinand opt raze distribuite uniform in jurul cercului. Pentru fiecare unghi, functiile cos(radians(i)) si sin(radians(i)) transforma unghiul din grade in radiani si calculeaza pozitiile punctelor aflate pe cerc.

Se definesc doua puncte pentru fiecare raza: unul mai indepartat, la 25 de pixeli de centru (x1, y1), si unul mai apropiat, la 18 pixeli de centru (x2, y2). Practic, aceste doua puncte stabilesc capetele razei. Functia tft.drawLine(x1, y1, x2, y2, ST77XX_YELLOW) traseaza o linie galbena intre cele doua puncte, adaugand efectul vizual de raza care iese din jurul soarelui.

Prin combinarea cercului central cu razele pozitionate echidistant, se obtine o imagine simpla dar sugestiva a unui soare. Acest tip de desen este foarte util atunci cand vrei sa creezi o interfata grafica prietenoasa pe un ecran mic.
 

Componente necesare

1 x Placa de dezvoltare compatibila Arduino R4 WiFi
1 x Breadboard 830 puncte
1 x Senzor digital de temperatura DS18B20
1 x Ecran TFT color de 1.8 inch
1 x Rezistor 4.7kΩ
12 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 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 ca proiectul sa functioneze corect, este necesar sa instalezi cateva librarii in Arduino IDE. In primul rand ai nevoie de Adafruit GFX Library, care ofera functiile grafice de baza precum texte, linii sau forme geometrice, si de Adafruit ST7735 and ST7789 Library, destinata controlului ecranelor TFT cu driver ST7735. In plus, vei folosi libraria standard SPI, deja inclusa in Arduino IDE, pentru comunicatia prin interfata SPI. Pentru senzorul de temperatura DS18B20 este necesara libraria OneWire, care permite comunicatia pe protocolul OneWire, si libraria DallasTemperature, ce simplifica citirea valorilor de temperatura. Toate aceste librarii se instaleaza usor din Library Manager: accesezi meniul Sketch > Include Library > Manage Libraries, cauti fiecare librarie dupa nume si apesi butonul Install.

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 proiectul?


Atunci cand pornesti circuitul, pe ecran apare mesajul de intampinare „Atelierul Bitmi”. Apoi, display-ul afiseaza un mic soare desenat cu functiile grafice si temperatura masurata de senzorul DS18B20, actualizata in timp real.

Rolul rezistorului de 4.7kΩ este esential, pentru ca fara el senzorul nu comunica bine cu Arduino si vei primi valori gresite. Iconul cu soarele este desenat prin combinatia dintre un cerc galben si cateva linii radiale, o metoda simpla si eficienta de a adauga un element vizual specific vremii.

Daca ai intrebari sau sugestii, scrie-mi la electronica@bitmi.ro. Si daca faci acest proiect, trimite-mi poze sau video. Abia astept sa vad cum l-ai personalizat!

Compara produse

Trebuie sa mai adaugi cel putin un produs pentru a compara produse.

A fost adaugat la favorite!

A fost sters din favorite!