Дисплей
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






