Menu
CoddyTech

Rysowanie własnych znaków

Część sekcji Wyświetlacze i czujniki ścieżki Arduino w Coddy. Lekcja 10 z 24.

Każdy znak na wyświetlaczu LCD to siatka złożona z 5 na 8 kropek. Możesz zaprojektować maksymalnie osiem własnych znaków, ponumerowanych od 0 do 7. Opisz jeden za pomocą 8 wierszy, z których każdy jest 5-bitowym wzorem, gdzie 1 oznacza zapaloną kropkę:

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

lcd.createChar(0, heart) zapisuje go jako znak 0. lcd.write(byte(0)) rysuje go w miejscu, w którym znajduje się kursor. print(0) narysowałoby zamiast niego cyfrę 0.

Uwaga na pułapkę: aby zapisać znak, biblioteka kieruje ekran na jego pamięć znaków i pozostaje on tam skierowany. Wszystko, co zostanie następnie wydrukowane, trafi do tej pamięci, a nie na ekran. Dlatego po createChar(), a przed drukowaniem, wywołaj lcd.setCursor() (lub lcd.clear()).

lcd.createChar(0, heart);
lcd.setCursor(0, 0);   // z powrotem na ekran
lcd.write(byte(0));
challenge icon

Wyzwanie

Średni

Układ startowy zawiera uśmiechniętą buźkę. Przywitaj się z jej pomocą:

  • zapisz ją jako znak 0 za pomocą lcd.createChar()
  • przenieś kursor do lewego górnego rogu
  • wyświetl Hi (ze spacją), a następnie narysuj buźkę

Naciśnij Uruchom, a następnie Sprawdź.

Spróbuj swoich sił

#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);

  // zapisz buźkę jako znak 0, a następnie wyświetl "Hi " i buźkę
}

void loop() {
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Wyświetlacze i czujniki

Poćwicz samodzielnie: Edytor online Arduino