Мы не выдаем Китай за Италию. Платы от российского производителя по сниженным ценам.

Новинки: Power DC Shield, Светодиодная лента, Freeduino Mini, модули USB Host, Relay.

ЖК индикатор WH1602B

WH1602B-YYK-CTK - это ЖК индикатор 16x2 с латинским и кириллическим шрифтом и HD44780-совместимым интерфейсом.

ЖК индикатор WH1602B-YYK-CTK 450 р. 350 р. В корзину

ЖК индикатор WH1602B-YYK-CTK PLS 550 р. 400 р. В корзину

ЖК индикатор 16x2 WH1602B-YYK-CTK c запаянными "низкими" (4мм) штыревыми разъемами - специально для LCD Keypad Shield.

  • Тип: знакосинтезирующий (текстовый)
  • Количество символов: 2 строки по 16 символов
  • Подсветка: светодиодная, желто-зеленая
  • Шрифт: латинский и кириллический
  • Габариты (мм): 80x36x14
  • Область вывода (мм): 56x11
  • Напряжение питания (В): 5
  • Интерфейс: HD44780 совместимый

Более полное техническое описание доступно в документации производителя.просмотр

Подключение к Arduino

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, и это могут быть любые порты - не обязательно те же, что и на рисунках.

Переменный резистор Contrast номиналом 10-20 кОм служит для регулировки контрастности.

Обращаем внимание на резистор LCD backlight - он ограничивает ток в цепи подсветки, а значит, от его номинала зависит ее яркость. Сопротивление такого резистора при питании подсветки от +5В должно быть порядка 6-8 Ом, а сам ток около 100 мА.

Пример вывода на ЖК дисплей, подключенный согласно второго рисунка:

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

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

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

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

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