Hei acolo! În calitate de furnizor de ecrane LCD 20x4, sunt adesea întrebat despre cum să afișez o valoare a temperaturii pe aceste mici ecrane ingenioase. Așadar, m-am gândit să alcătuiesc această postare pe blog pentru a vă ghida prin întregul proces.


În primul rând, să vorbim puțin despre afișajul LCD 20x4. Este o alegere excelentă pentru o mulțime de proiecte, mai ales atunci când trebuie să afișați o cantitate decentă de informații. „20x4” înseamnă că are 20 de caractere pe rând și 4 rânduri în total. Acest lucru vă oferă mult spațiu pentru a afișa nu doar temperatura, ci și câteva detalii suplimentare, cum ar fi unitățile (Celsius sau Fahrenheit) și, poate, un marcaj de timp.
Acum, înainte de a ne aprofunda în chestiile tehnice, să menționăm rapid câteva alte afișaje LCD de care ați putea fi, de asemenea, interesat. Dacă căutați ceva mai mic, avemdisplay lcd 16x2. Este un clasic, cu 16 caractere pe rând și 2 rânduri. Apoi mai esteDisplay LCD 20x2, care vă oferă puțin mai multă lățime, dar totuși doar 2 linii. Și dacă vrei un pic mai multă înălțime, celDisplay LCD 16 x 4este o opțiune solidă.
Bine, înapoi la ecranul LCD 20x4 și afișarea temperaturii. Primul lucru de care veți avea nevoie este un senzor de temperatură. Există tone de ele acolo, dar unul popular este DHT11 sau DHT22. Acești senzori sunt relativ ușor de utilizat și vă pot oferi citiri precise ale temperaturii.
Odată ce aveți senzorul, va trebui să-l conectați la microcontroler. Voi presupune că utilizați un Arduino pentru acest exemplu, dar conceptele generale se aplică și altor microcontrolere.
Conectarea senzorului de temperatură la Arduino
- Putere: Conectați pinul VCC al senzorului DHT la pinul de 5V de pe Arduino. Aceasta oferă puterea de care are nevoie senzorul pentru a funcționa.
- Sol: Conectați pinul GND al senzorului la pinul GND de pe Arduino. Aceasta completează circuitul electric.
- Date: Conectați pinul de date al senzorului la unul dintre pinii digitali de pe Arduino. Să presupunem că îl conectăm la pinul 2.
Conectarea LCD-ului 20x4 la Arduino
- Putere: Conectați pinul VSS al LCD-ului la GND și pinul VDD la 5V.
- Contrast: Conectați pinul VO la un potențiometru. Acest lucru vă permite să reglați contrastul afișajului, astfel încât să puteți vedea clar caracterele.
- Pinuri de control: Conectați pinul RS la pinul digital 12, pinul EN la pinul digital 11 și pinii D4 - D7 la pinii digitali 5 - 8, respectiv. Acești pini sunt folosiți pentru a trimite comenzi și date către LCD.
Scrierea Codului
Acum că totul este conectat, este timpul să scrieți codul. Iată un exemplu de bază:
#include <LiquidCrystal.h> #include <DHT.h> // Inițializați biblioteca LCD cu numerele pinilor de interfață LiquidCrystal lcd(12, 11, 5, 6, 7, 8); // Inițializați senzorul DHT #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { // Configurați numărul de coloane și rânduri de pe ecranul LCD: lcd.begin(20, 4); // Porniți senzorul DHT dht.begin(); } void loop() { // Citirea temperaturii sau umidității durează aproximativ 250 de milisecunde! // Citirile senzorului pot fi, de asemenea, „vechi” de până la 2 secunde (este un senzor foarte lent) float h = dht.readHumidity(); float t = dht.readTemperature(); // Verificați dacă vreo citire nu a reușit și ieșiți mai devreme (pentru a încerca din nou). if (isnan(h) || isnan(t)) { lcd.setCursor(0, 0); lcd.print("Nu s-a putut citi de la senzorul DHT!"); reveni; } // Afișează temperatura pe LCD lcd.setCursor(0, 0); lcd.print("Temperatura: "); lcd.print(t); lcd.print ("C"); întârziere (2000); }
Să detaliem ce se întâmplă în acest cod:
- Biblioteci: Noi includem
LiquidCrystalbibliotecă pentru a controla LCD-ul șiDHTbibliotecă pentru a citi senzorul de temperatură. - Inițializare: În
înființat()funcție, inițializam LCD-ul cu numărul corect de coloane și rânduri (20x4). Pornim și senzorul DHT. - Citirea senzorului: În
buclă()funcția, citim umiditatea și temperatura de la senzorul DHT. Dacă citirile sunt invalide, afișăm un mesaj de eroare pe LCD. - Afișarea temperaturii: Dacă citirile sunt valide, plasăm cursorul la începutul primei rânduri de pe LCD, tipărim textul „Temperatura: „, urmat de valoarea temperaturii și unitatea „C”.
- Întârziere: Adăugăm o întârziere de 2 secunde înainte de a citi din nou senzorul. Acest lucru oferă senzorului suficient timp pentru a efectua citiri precise.
Considerații suplimentare
- Conversie de unitate: Dacă doriți să afișați temperatura în Fahrenheit în loc de Celsius, puteți utiliza următoarea formulă:
t = dht.readTemperature(true);Theadevăratparametrul spunecitițiTemperatura()funcția de revenire a temperaturii în Fahrenheit. - Gestionarea erorilor: În codul de mai sus, afișăm doar un mesaj de eroare dacă citirile senzorului sunt nevalide. Ați putea adăuga o gestionare mai sofisticată a erorilor, cum ar fi încercarea de a citi din nou senzorul de câteva ori înainte de a renunța.
- Formatarea afișajului: Vă puteți juca cu formatarea afișajului pentru a-l face să arate mai frumos. De exemplu, puteți adăuga umplutură la valoarea temperaturii, astfel încât să ocupe întotdeauna același număr de caractere.
Concluzie
Și asta este! Acum știți cum să afișați o valoare a temperaturii pe un afișaj LCD 20x4 folosind un Arduino și un senzor DHT. Este un proiect distractiv și util care poate fi extins în multe feluri.
Dacă sunteți interesat să achiziționați afișaje LCD 20x4 sau oricare dintre celelalte produse LCD ale noastre, ne-ar plăcea să aflăm de la dvs. Doar contactați-ne pentru a începe o conversație despre nevoile dvs. specifice. Suntem aici pentru a vă ajuta să găsiți soluția de afișare perfectă pentru proiectul dvs.
Referințe
- Documentație Arduino
- Fișa tehnică a senzorului DHT
- Documentația bibliotecii LiquidCrystal
