HD44780-Displays und Arduino: Individuelle Zeichen erzeugen

20161003_220723.jpg

Ach ja, es war einer der ersten Beiträge auf wiefreak.de: Jener Beitrag, in dem ich beschrieb, wie man ein HD44780-Display an einen Raspberry anschließt. Was ist seitdem passiert? Naja, mit dem Design des Blogs nicht viel, die Qualität ist… äh…. gleichbleibend mittelmäßig geblieben. Es kommen nach wie vor nur sehr selten Beiträge, und die meisten Beiträge sind nur sehr kurz und haben nur wenig von der sogenannten persönlichen Tiefe, die ich immer wieder vergeblich versuche in die Artikel einzubringen. (Sagte nicht mal jemand als Student hat man haufenweise Zeit?)
Egal, genug des Selbstmitleids. Heute geht es darum, wie man sich eigene Symbole und Zeichen auf einem solchen Display erzeugen und anzeigen lassen kann.
Und, wie so oft bei den Arduino-kompatiblen Bauteilen ist dies deutlich einfacher als erwartet.
Das Ganze unterteilt sich in 3 Teile: Die eigenen Zeichen definieren, sie in den Speicher des Displays laden, die Zeichen anzeigen.
Dabei ist der erste Schritt zugleich der komplizierteste. Wir definieren einen Array aus 8 5-Bittrigen Bytes (ich hab keine Ahnung ob man das wirklich so schreibt…), in den wir dann die 8 Zeilen des Displays laden.

byte lol[8] = {
0b11000,
0b10001,
0b00001,
0b00100,
0b00010,
0b00000,
0b00000,
0b10001}

Wichtig hierbei ist, dass jedes „1“-Bit später „hervorgehoben“ wird. So Zeichnet man sich Stück für Stück seine Form.
Da das sehr umständlich und schlecht vorzustellen ist, habe ich schnell mit C++ ein Progrämmchen zusammengehämmert, mit dem sich diese Formen viel schneller und besser erstellen lassen.

costum_char_ad
Am Ende lässt man sich den Code generieren und fügt ihn über der setup()-Schleife ein.

Das kleine Progrämmchen kann man sich hier runterladen.

So! Jetzt aber genug werbefinanzierter Clickbait. Zurück zum Display.

In der Setup()-Schleife fügt man dannn für jeden Char die Zeile

lcd.createChar(1, besterName);

ein. Natürlich jeweils mit der Bezeichnung, die ihr oben vergeben habt. Die Zahl steht für den jeweiligen Byte. Also bei mir ist es der erste.

Wichtig beim Aufrufen ist, dass ihr nicht print() verwenden dürft, es muss write() sein. Wenn es dann immer noch nicht geht, setzt die Zahl in ein byte(Zahl). das muss bei manchen gemacht werden.

Das könnte interessant sein Powered by AdWol Online Werbung

Komplett-Tutorial: HD44780-Display mit Raspberry Pi benutzen

// // ]]> (Hinweis: Alle benötigten Bauteile und Komponenten findet ihr auch im Wiefreak.de ...