Last Updated on 1. März 2022 by sfambach
Ich bin immer wieder verwundert, dass es doch ein paar Leser hier im Block gibt. Neulich schrieb mich Siegfried an und meinte er möchte ein paar Balken auf einem Cristal LCD Display darstellen, ob ich das schon mal gemacht habe. Die Antwort war nein sollte sich aber bald ändern.
Fakten
Teileliste
Arduino Uno
Anwendungsbereiche
- Darstellungen von Messerwerten in abhänigkeit der Zeit
- Equilizer visualierung
Ansichten
Gibts am Ende 😉
Analyse
So ein LCD Display besteht aus mehreren Zeilen und Spalten. In eine Spalten- und Zeilenkombination passt immer genau ein Zeichen.
Die Pixel eines Zeichens können nicht einzeln angesprochen werden, es ist aber möglich eigenen Zeichen zu erstellen.
Somit habe ich für jeden Füllstand ein Zeichen erstellt. Das Leere Zeichen habe ich weggelassen weil bei meinem Display das gleiche wie bei C8 angezeigt wurde und da ich vorher das Display lösche, macht es keinen Unterschied.
Um beide Zeilen nutzen zu können müssen die jeweiligen Ergebnisse zweigeteilt (für mehr Zeilen sind mehr Teilungen nötig) werden, ist die untere Zeile voll (also C8) geht es weiter mit der oberen.
Die Werte für jeden Balken halten wir in einem Array vor. Das Array wird dann direkt in die Balken umgewandelt.
Programmierung
Bibliotheken
Die Bibliothek zum Display ist bereits in der Arduino GUI enthalten.
#include <LiquidCrystal.h>
Testprogramm
Das Testprogramm generiert alle 4 Sekunden einen neuen zufälligen Wert. Mit jedem neuen Wert werden die Ergebnisse im Array um eins nach rechts geschoben. Ist das Array voll wird der letzte Wert verworfen.
Und so siehts aus:
Probleme
Komische Fragmente in den Benutzerdefinierten Zeichen
Wenn ich die Reihenfolge im Setup änderere, also bevor ich etwas auf dem display ausgegeben habe die Benutzerdefinierten Zeichen hinzufüge, bekomme ich diese Fragmente. Ich nehme an das Display Init hat in der Bibliothek noch einen Fehler und erst mit der ersten Ausgabe ist es richtig initialisiert.
Sonstiges
nix ...
Fazit
Nachdem die Funktion des Displays ersteimal klar war und ich wusste dass ich über die benutzerdefinierten Zeichen gehen muss, war es fast ein Kinderspiel. Die Daten in einem Array zu organisieren bietet eine gute Möglichkeit sie später zu manipulieren und in Schleifen abzuarbeiten. Ich hoffe es gefällt euch, vielen Dank an Siegfried für die Idee, solltet ihr noch Erweiterungswünsche oder Fragen haben lasst einen Kommentar da.
Verwandte Beiträge
Quellen
https://www.arduino.cc/en/Reference/LiquidCrystal
https://de.wikipedia.org/wiki/Fl%C3%BCssigkristallanzeige
https://maxpromer.github.io/LCD-Character-Creator/
https://www.hackster.io/jacoslabbert99/arduino-lcd-icons-custom-characters-548f38