Inhaltsverzeichnis:
Video: Zweistelliges Display mit einer einzelnen 8x8 LED-Matrix - Gunook
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Hier würde ich gerne eine Temperatur- und Feuchtigkeitsanzeige für mein Zimmer bauen. Ich habe eine einzelne 8x8 LED-Matrix zum Anzeigen von zweistelligen Zahlen verwendet, und ich denke, dass ein Teil des Projekts nützlicher wurde. Ich habe das fertig gebaute mit einem Pappkarton verpackt, der wie Holz bemalt ist.
Lieferungen
- Arduino Nano x1
- DHT11 Temperatur- und Feuchtigkeitssensor x1
- 8x8 LED-Matrix mit MAX7219 x1
- 10K Widerstand x1
- Kopfdrähte
- 5V Netzteil x1
- Karton (4x8x13 cm)
Schritt 1: Schaltplan
Der digitale Temperatur- und Feuchtigkeitssensor DHT11 liefert Temperaturen zwischen 0 - 50°C und eine Luftfeuchtigkeit zwischen 20% und 90%. Die Temperaturgenauigkeit beträgt ±2 °C (maximal) und die Feuchtigkeitsgenauigkeit beträgt ±5 %.
DHT11 liefert auch Taupunktwerte. Der Taupunkt ist die Temperatur, auf die Luft abgekühlt werden muss, um mit Wasserdampf gesättigt zu werden. Bei weiterer Abkühlung kondensiert der Wasserdampf in der Luft zu flüssigem Wasser.
Schritt 2: Verkabelung & Boxen
Zuerst habe ich den Karton mit Acrylfarbe bemalt und nach 1 Tag Trocknen mit einem Haarspray fertig. Ich habe ein quadratisches Fenster für die LED-Anzeige auf der Frontabdeckung gemacht. Außerdem habe ich ein kleines rechteckiges Loch für das Arduino Nano-Netzteil geöffnet und mehrere Löcher in der Nähe des DHT11-Sensors platziert.
Ich habe den Arduino in der Ecke der Hauptbox mit einer kleinen Box und heißem Silikon befestigt.
Die LED-Matrix habe ich mit transparenten Klebestreifen im Fenster platziert. Hier ist es wichtig, ihn mit einer Drehung um 90° gegen den Uhrzeigersinn zu platzieren, da der Code die oberen 4 Reihen für Zehnerstellen und die unteren 4 Reihen für Einerstellen verwendet. Für das von mir verwendete Modul sollte die Seite mit MAX7219 auf der Basisseite liegen.
Da ich Arduino und Sensor an der Schließseite der Box platziert habe, konnte ich sie nicht vollständig schließen. Wählen Sie besser die andere Seite aus:).
Schritt 3: Code
Laden Sie zuerst die Bibliothek für DHT11 (https://github.com/adidax/dht11) und LED-Matrix (https://github.com/wayoda/LedControl) hoch, falls Sie dies noch nicht getan haben.
Der Code verwendet die ersten 4 Reihen der LED-Matrix als Zehner und die letzten 4 Reihen als Einheiten. Wenn Sie also beispielsweise den Code auf "eins" überprüfen, sehen Sie "11" um 90° im Uhrzeigersinn gedreht. Wenn Sie diese Codes ändern möchten, achten Sie bitte auf dieses Detail.
Byte eins = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};
Die Codes zum Abrufen der Ziffern aus dem Sensormesswert sind:
Einheiten = feucht % 10; Zehner = (feucht/10) % 10;
Für Zehnerstellen läuft die for-Schleife wie folgt:
if (Zehner == 1) { for (int c=0;c<4;c++) {lc.setRow(0, c, one[c]); }
Bei Einerstelle läuft die for-Schleife wie folgt ab:
if (Einheiten == 1) { for (int c=4;c<8;c++) {lc.setRow(0, c, one[c]); }
Die Anzeigereihenfolge ist in der Schleife wie folgt:
"°C" -> Temperatur -> "hum" -> Feuchtigkeit -> "dp" -> Taupunkt -> Bedeutung des Taupunktes (unten erklärt)
Ich habe einige Informationen darüber, wie die Leute das Wetter gemäß dem Taupunkt empfinden, und füge diese Informationen wie folgt in den Code ein:
dp < 10: trocken
9 < dp < 15: gut (g..d)
14 < dp < 18: schwül (sw)
17 < dp < 24: Sweltry plus (sw +)
dp > 23: nass
Die Anzeige für diese Wörter ist nicht gut, aber für ein einzelnes 8x8-Display immer noch verständlich