HackSpace - SPb / ХакСпейс - Петербург

Дисплей


WH1602B-YYK-CTK, как и другие ЖК индикаторы с HD44780 совместимым интерфейсом, легко подключается к любой Arduino-совместимой плате.

Одним из вариантов является применение LCD Keypad Shield, но возможно, также и непосредственное подключение (потребует больше свободных выводов).

Дисплей имеет следующее расположение выводов:

1 — Gnd (земля)
2 — Vin (питание +5В)
3 — VO (настройка контрастности)
4 — RS (данные/команды)
5 — RW (чтение/запись)
6 — E (Enable)
7-14 — DB0-DB7 (линии данных)
15 — LED+ (анод подсветки)
16 — LED- (катод подсветки)

Модуль может работать в 4-х битном режиме, что уменьшает число необходимых выводов — нужно подключить только Gnd, Vin, VO, RS, RW, E, DB4-DB7, и при необходимости подсветку. Также, поскольку обычно обмен данными идет только в одну сторону — от микроконтроллера к ЖК дисплею, вывод RW может не подключаться к Arduino, а быть подключенным к Gnd.

Возможный вариант подключения представлен на рисунках. На втором рисунке «сэкономлен» один вывод за счет подключения RW к Gnd. Итого, в минимальном варианте для подключения требуется 6 свободных портов Arduino

Код для выдачи надписи Hello world

#include «LiquidCrystal.h»

//Создаем объект для работы с дисплеем.
//При создании указываем номера портов
//в порядке RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

void setup() {
  //Выставлем число столбцов и строк
  lcd.begin(16, 2);
  //Выводим текст
  lcd.print(«hello, world!»);
}

void loop() {
  //Выставляем курсор во 2-ю строку,
  //1й столбец (счет идет с 0, поэтому
  //строка номер 1, стобец номер 0)
  lcd.setCursor(0, 1);
  //Выводим число секунд со старта
  lcd.print(millis()/1000);
}

Создание своего символа:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); byte smiley[8] = { B00000, B10001, B00000, B00000, B10001, B01110, B00000, }; void setup() { lcd.createChar(0, smiley); lcd.begin(16, 2); lcd.write(byte(0)); } void loop() {}

Вывод русского текста имеет ряд особенностей в связи с тем, что исходный код в среде Arduino сохраняется в кодировке UTF-8, которая, конечно, не соответствует таблице символов в ЖК дисплее. Для вывода русских символов можно указывать их коды в восьмеричной системе в соответствии с синтаксисом C/C++, ориентируясь на таблицу из документации. Пример такого вывода:

  //вывод строки «ЖК дисплей»
lcd.print(«\243K \343\270c\276\273e\271″);

Здесь «\243″, «\343″, «\270″, «\276″, «\273″, «\271″ — коды символов «Ж», «д», «и», «п», «л», «й». Обратите внимание, что символы «K», «c» и «e» — это символы латинского алфавита.

Можно задавать коды 16-м кодом. Так например, букве «Я» соответствует код B1 в шестнадцатиричной системе. Чтобы передать на экран строку «Яndex», необходимо в явном виде с помощью последовательности \x## встроить в строку код символа:

lcd.print("\xB1ndex");

Более удобным может быть использование библиотеки LiquidCrystalRus, которая, хоть и занимает несколько дополнительных десятков байт flash-памяти, зато позволяет непосредственно использовать русские символы в кодировке UTF-8 при выводе на дисплей. Библиотека доступна также и на сайте ее разработчика.

http://www.freeduino.ru/arduino/files/WH1602B-YYH-CTK.pdf

WH1602B-YYH-CTK
WH1602B-YYH-CTK
WH1602B-YYH-CTK.pdf
496.5 KiB
1289 Downloads
Детали...
Close
loading...