Menu
CoddyTech

Создание пользовательских символов

Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 10 из 24.

Каждый символ на LCD представляет собой сетку из 5 на 8 точек. Вы можете создать до восьми собственных символов с номерами от 0 до 7. Опишите один из них с помощью 8 строк, каждая из которых представляет собой 5-битный шаблон, где 1 означает горящую точку:

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

lcd.createChar(0, heart) сохраняет его как символ 0. lcd.write(byte(0)) выводит его в месте расположения курсора. print(0) вместо этого вывел бы цифру 0.

Есть одна ловушка: чтобы сохранить символ, библиотека направляет экран на свою память символов, и он остается направленным туда. Все, что будет выведено дальше, попадет в эту память, а не на экран. Поэтому после createChar() вызовите lcd.setCursor() (или lcd.clear()), прежде чем что-либо выводить.

lcd.createChar(0, heart);
lcd.setCursor(0, 0);   // вернуться к экрану
lcd.write(byte(0));
challenge icon

Задание

Средне

В стартовом коде есть рисунок улыбающегося лица. Поздоровайся с его помощью:

  • сохрани его как символ 0 с помощью lcd.createChar()
  • перемести курсор в верхний левый угол
  • выведи Hi (с пробелом), затем нарисуй улыбающееся лицо

Нажми Run, затем Check.

Попробуйте сами

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

  // сохраните смайлик как символ 0, затем выведите "Hi " и смайлик
}

void loop() {
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Дисплеи и датчики

Потренируйтесь самостоятельно: Песочница Arduino