Menu
CoddyTech

Eigene Zeichen zeichnen

Teil des Abschnitts Displays und Sensoren der Arduino-Journey von Coddy. Lektion 10 von 24.

Jedes Zeichen auf dem LCD ist ein Raster aus 5 mal 8 Punkten. Du kannst bis zu acht eigene Zeichen entwerfen, nummeriert von 0 bis 7. Beschreibe eines mit 8 Zeilen, jede ein 5-Bit-Muster, bei dem 1 für einen leuchtenden Punkt steht:

byte heart[8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000,
  0b00000
};

lcd.createChar(0, heart) speichert es als Zeichen 0. lcd.write(byte(0)) zeichnet es an der Cursorposition. print(0) würde stattdessen die Ziffer 0 zeichnen.

Ein Fallstrick: Um ein Zeichen zu speichern, richtet die Bibliothek den Bildschirm auf seinen Zeichenspeicher aus, und er bleibt darauf ausgerichtet. Alles, was danach ausgegeben wird, landet in diesem Speicher und nicht auf dem Bildschirm. Rufe also nach createChar() und vor der Ausgabe lcd.setCursor() (oder lcd.clear()) auf.

lcd.createChar(0, heart);
lcd.setCursor(0, 0);   // zurück zum Bildschirm
lcd.write(byte(0));
challenge icon

Aufgabe

Mittel

Der Starter hat ein Smiley-Design. Sag damit Hallo:

  • speichere es als Zeichen 0 mit lcd.createChar()
  • bewege den Cursor nach links oben
  • gib Hi (mit einem Leerzeichen) aus und zeichne dann das Smiley

Drücke Run und dann Check.

Probier es selbst

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte smiley[8] = {
  0b00000,
  0b01010,
  0b01010,
  0b00000,
  0b10001,
  0b01110,
  0b00000,
  0b00000
};

void setup() {
  lcd.begin(16, 2);

  // Speichere den Smiley als Zeichen 0 und gib dann "Hi " und den Smiley aus
}

void loop() {
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Displays und Sensoren

Übe selbstständig: Arduino-Playground