Video: Dvojciferný displej s jednou LED maticou 8x8: 3 kroky
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Tu by som chcel zabudovať indikátor teploty a vlhkosti pre svoju izbu. Na zobrazenie dvojciferných čísel som použil jeden 8x8 LED Matrix a myslím si, že časť projektu sa stala užitočnejšou. Finále postavené pomocou krabice som zabalil do kartónu, natretého ako drevo.
Zásoby
- Arduino Nano x1
- Senzor teploty a vlhkosti DHT11 x1
- Matica 8x8 LED s MAX7219 x1
- 10K odpor x1
- Hlavičkové vodiče
- Napájanie 5V x1
- Kartónová škatuľa (4x8x13 cm)
Krok 1: Schéma
Digitálny snímač teploty a vlhkosti DHT11 dodáva teploty medzi 0 - 50 ° C a vlhkosť medzi 20% až 90%. Presnosť teploty je ± 2 ° C (maximum) a presnosť vlhkosti je ± 5%.
DHT11 tiež poskytuje hodnoty rosného bodu. Rosný bod je teplota, na ktorú sa musí vzduch ochladiť, aby sa nasýtil vodnou parou. Pri ďalšom ochladzovaní vzduchom prenášaná vodná para kondenzuje a vytvára tekutú vodu.
Krok 2: Elektroinštalácia a box
Kartónovú škatuľku som najskôr namaľoval akrylovou farbou a po 1 dni sušenia som skončil lakom na vlasy. Na predný kryt som vyrobil hranaté okno pre LED displej. Tiež som otvoril malý obdĺžnikový otvor pre napájanie Arduino Nano a umiestnil niekoľko otvorov v blízkosti snímača DHT11.
Arduino som zafixoval v rohu hlavného boxu pomocou malého boxu a horúceho kremíka.
LED maticu som umiestnil do okna pomocou priehľadných páskových pásikov. Tu je dôležité umiestniť ho o 90 ° proti smeru hodinových ručičiek, pretože kód bude používať horné 4 riadky pre desiatky číslic a spodné 4 riadky pre jednotkové číslice. Pre modul, ktorý som použil, by mala byť strana s MAX7219 na spodnej strane.
Pretože som umiestnil Arduino a senzor na uzatváraciu stranu skrinky, nemohol som ju úplne zavrieť?. Radšej vyberte druhú stranu:).
Krok 3: Kód
Ak ešte nemáte, najskôr nahrajte knižnicu pre DHT11 (https://github.com/adidax/dht11) a maticu LED (https://github.com/wayoda/LedControl).
Kód používa prvé 4 riadky matice LED ako desiatky a posledné 4 riadky ako jednotky. Ak napríklad skontrolujete kód „jeden“, uvidíte „11“otočený o 90 ° v smere hodinových ručičiek. Ak chcete tieto kódy zmeniť, dbajte na tieto detaily.
bajt jeden = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};
Kódy na získanie číslic z hodnoty snímača sú:
jednotky = vlhké % 10; desiatky = (vlhké /10) % 10;
Pre desiatky číslic prebieha slučka for nasledovne:
if (desiatky == 1) {pre (int c = 0; c <4; c ++) {lc.setRow (0, c, one [c]); }
Pre číslice jednotiek beží cyklus for nasledovne:
if (jednotky == 1) {pre (int c = 4; c <8; c ++) {lc.setRow (0, c, one [c]); }
Poradie zobrazenia je v slučke takto:
"° C" -> teplota -> "hukot" -> vlhkosť -> "dp" -> rosný bod -> význam rosného bodu (vysvetlené nižšie)
Mám niekoľko informácií o tom, ako ľudia cítia počasie podľa rosného bodu, a vložte ich do kódu takto:
dp <10: suché
9 <dp <15: dobré (g..d)
14 <dp <18: Sweltry (sw)
17 <dp <24: Sweltry plus (sw +)
dp> 23: mokré
Displej pre tieto slová nie je dobrý, ale stále je zrozumiteľný pre jeden displej 8x8