Video: Dvoznamenkasti zaslon pomoću jedne 8x8 LED matrice: 3 koraka
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Ovdje bih želio izgraditi pokazivač temperature i vlažnosti za svoju sobu. Koristio sam jednu LED matricu 8x8 za prikaz dvoznamenkastih brojeva i mislim da je taj dio projekta postao korisniji. Završno sam gradio od kartonske kutije, bojan kao drvo.
Pribor
- Arduino Nano x1
- Senzor temperature i vlažnosti DHT11 x1
- 8x8 LED matrica s MAX7219 x1
- 10K otpornik x1
- Žice zaglavlja
- 5V napajanje x1
- Kartonska kutija (4x8x13 cm)
Korak 1: Shematski prikaz
Digitalni osjetnik temperature i vlažnosti DHT11 isporučuje temperature između 0 - 50 ° C i vlažnost između 20% i 90%. Točnost temperature je ± 2 ° C (maksimalna), a točnost vlažnosti ± 5%.
DHT11 također daje vrijednosti točke rosišta. Rosište je temperatura na koju se zrak mora ohladiti da postane zasićen vodenom parom. Kad se dodatno ohladi, vodena para u zraku će se kondenzirati i oblikovati tekuću vodu.
Korak 2: Ožičenje i boks
Prvo sam obojila kartonsku kutiju akrilnom bojom, a nakon sušenja 1 dan završila sam lakom za kosu. Napravio sam četvrtasti prozor za LED zaslon na prednjoj strani. Također sam otvorio malu pravokutnu rupu za napajanje Arduino Nano i stavio nekoliko rupa u blizini senzora DHT11.
Popravio sam Arduino u kut glavne kutije pomoću male kutije i vrućeg silicija.
Postavio sam LED matricu u prozor pomoću prozirnih trakastih traka. Ovdje je važno postaviti ga s rotacijom za 90 ° u smjeru suprotnom od kazaljke na satu jer će kod koristiti gornja 4 reda za desetke, a donja 4 reda za znamenke jedinica. Za modul koji sam koristio strana s MAX7219 trebala bi biti na bazi.
Budući da sam stavio Arduino i senzor na zatvarajuću stranu kutije, nisam ga mogao potpuno zatvoriti?. Bolje izaberi drugu stranu:).
Korak 3: Kodirajte
Prvo učitajte knjižnicu za DHT11 (https://github.com/adidax/dht11) i LED matricu (https://github.com/wayoda/LedControl) ako to već niste učinili.
Kod koristi prva 4 reda LED matrice kao desetke, a posljednja 4 retka kao jedinice. Tako, na primjer, ako provjerite kôd za "jedan", vidjet ćete "11" rotirano za 90 ° u smjeru kazaljke na satu. Ako želite promijeniti ove kodove, vodite računa o tim pojedinostima.
jedan bajt = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};
Kodovi za dobivanje znamenki iz očitanja senzora su:
jedinice = vlažno % 10; desetice = (vlažno /10) % 10;
Za desetke znamenke for petlja radi na sljedeći način:
if (desetice == 1) {for (int c = 0; c <4; c ++) {lc.setRow (0, c, jedan [c]); }
Za znamenke jedinica petlja for radi na sljedeći način:
if (jedinice == 1) {for (int c = 4; c <8; c ++) {lc.setRow (0, c, jedan [c]); }
Redoslijed prikaza je u petlji na sljedeći način:
"° C" -> temperatura -> "brujanje" -> vlažnost -> "dp" -> točka rosišta -> značenje točke rosišta (objašnjeno u nastavku)
Imam neke podatke o tome kako ljudi osjećaju vrijeme prema rosištu i te podatke stavljam u kôd na sljedeći način:
dp <10: suho
9 <dp <15: dobro (g..d)
14 <dp <18: Sweltry (sw)
17 <dp <24: Sweltry plus (sw +)
dp> 23: mokro
Zaslon za ove riječi nije dobar, ali je ipak razumljiv za jedan zaslon veličine 8x8