Cuprins:

Afișaj cu două cifre folosind o singură matrice de 8 x 8 leduri: 3 pași
Afișaj cu două cifre folosind o singură matrice de 8 x 8 leduri: 3 pași
Anonim
Afișaj din două cifre folosind o singură matrice de 8 x 8 leduri
Afișaj din două cifre folosind o singură matrice de 8 x 8 leduri

Aici aș dori să construiesc un indicator de temperatură și umiditate pentru camera mea. Am folosit o singură matrice LED 8x8 pentru afișarea numerelor din două cifre și cred că o parte a proiectului a devenit mai utilă. Am boxat finalul construit folosind o cutie de carton, vopsită ca lemnul.

Provizii

  1. Arduino Nano x1
  2. Senzor de temperatură și umiditate DHT11 x1
  3. Matrice LED 8x8 cu MAX7219 x1
  4. Rezistor 10K x1
  5. Firele antetului
  6. Alimentare 5V x1
  7. Cutie de carton (4x8x13 cm)

Pasul 1: Schematic

Schematic
Schematic

Senzorul digital de temperatură și umiditate DHT11 oferă temperaturi între 0 - 50 ° C și umiditate între 20% și 90%. Precizia temperaturii este de ± 2 ° C (maximă), iar precizia umidității este de ± 5%.

DHT11 oferă, de asemenea, valori ale punctului de rouă. Punctul de rouă este temperatura la care aerul trebuie răcit pentru a deveni saturat cu vapori de apă. Când este răcit în continuare, vaporii de apă aerieni se vor condensa pentru a forma apă lichidă.

Pasul 2: Cablare și box

Cablare și box
Cablare și box
Cablare și box
Cablare și box
Cablare și box
Cablare și box
Cablare și box
Cablare și box

Mai întâi am vopsit cutia de carton folosind vopsea acrilică și după uscare timp de 1 zi am terminat cu un fixativ. Am realizat o fereastră pătrată pentru afișaj LED pe capacul frontal. De asemenea, am deschis o mică gaură dreptunghiulară pentru alimentarea cu energie Arduino Nano și am pus câteva găuri lângă senzorul DHT11.

Am fixat Arduino în colțul cutiei principale folosind cutie mică și siliciu fierbinte.

Am așezat matricea LED în fereastră folosind benzi de bandă transparentă. Aici este important să-l plasați cu o rotație de 90 ° în sens invers acelor de ceasornic, deoarece codul va utiliza cele 4 rânduri superioare pentru cifre de zeci și cele 4 rânduri inferioare pentru cifre de unitate. Pentru modulul pe care l-am folosit, partea cu MAX7219 ar trebui să fie pe partea de bază.

Deoarece am plasat Arduino și senzorul în partea de închidere a cutiei, nu le-am putut închide complet. Mai bine selectați cealaltă parte:).

Pasul 3: Cod

Cod
Cod
Cod
Cod
Cod
Cod

Încărcați mai întâi biblioteca pentru DHT11 (https://github.com/adidax/dht11) și matricea LED (https://github.com/wayoda/LedControl) dacă nu aveți deja.

Codul folosește primele 4 rânduri ale matricei LED ca zeci și ultimele 4 rânduri ca unități. Astfel, de exemplu, dacă verificați codul pentru „unul”, veți vedea „11” rotit la 90 ° în sensul acelor de ceasornic. Dacă doriți să modificați aceste coduri, vă rugăm să aveți grijă de acel detaliu.

octet unu = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};

Codurile pentru obținerea cifrelor din citirea senzorului sunt:

unități = umed% 10; zeci = (umed / 10)% 10;

Pentru zeci de cifre, bucla for rulează după cum urmează:

if (zeci == 1) {for (int c = 0; c <4; c ++) {lc.setRow (0, c, one [c]); }

Pentru unități cifrate, bucla for rulează după cum urmează:

if (units == 1) {for (int c = 4; c <8; c ++) {lc.setRow (0, c, one [c]); }

Ordinea de afișare este în buclă după cum urmează:

"° C" -> temperatura -> "zumzet" -> umiditate -> "dp" -> punctul de rouă -> semnificația punctului de rouă (explicat mai jos)

Am câteva informații despre modul în care oamenii simt vremea în funcție de punctul de rouă și pun aceste informații în cod după cum urmează:

dp <10: uscat

9 <dp <15: bun (g..d)

14 <dp <18: Sweltry (sw)

17 <dp <24: Sweltry plus (sw +)

dp> 23: ud

Afișajul pentru acest cuvânt nu este bun, dar totuși de înțeles pentru un singur afișaj 8x8

Recomandat: