Дисплей символьный ЖКИ LCD1602 с кнопочным блоком управления для Raspberry Pi
Одним из самых популярных и легкодоступных способов интерактивного взаимодействия с окружающим миром любого готового или разрабатываемого приложения остаётся дисплей. Именно на него возлагается основная задача, связанная с показом различного рода информации, представленной на экране в максимально понятном для визуального восприятия виде. Дисплей LCD1602A, ставший основой модуля расширения RGB LCD Pi PLate V2.0, поможет увидеть пользователю не только происходящие внутрипрограммные процессы проектируемого на базе платформы Raspberry Pi приложения, но и разносторонние показатели, принимаемые от разнообразных внешних датчиков, совмещённых с микросхемой вычислительного контроллера в рамках индивидуального проекта. Плата модуля оснащена дополнительными элементами управления из пяти кнопок, при помощи которых возможно создание раздела настроек или переключения между режимами работы приложения.
Технические характеристики
- Модель: RGB LCD Pi PLate V2.0
- Питание: 5В
- Тип дисплея: ЖКИ, матрица STN
- Диагональ экрана: 2.6 дюйма
- Видимая область: 64.5 х 14.5 мм
- Активная область: 56.2 х 11 мм
- Размер графической точки (пиксела): 0.6 х 0.6 мм
- Количество строк: 2
- Количество символов в строке: 16
- Подсветка: светодиодная
- Цвет подсветки: синий
- Цвет символов: белый
- Графический контроллер: ST7066U+ST7065C / HD44780
- Шина передачи данных: 4-битная
- Встроенный расширитель портов: MCP23017
- Интерфейс: I2C/IIC (по умолчанию адрес 0х20, настраивается)
- Интегрированный SMD 5050 трёхцветный RGB-светодиод
- Регулятор контрастности: подстроечный SMD-резистор
- Органы управления: пятикнопочная клавиатура, кнопки вверх (Up), вниз (Down), вправо (Right), влево (Left), выбор (Select)
- Интерфейс ввода-вывода: стандартный 26-контактный разъём GPIO, совместимый с моделями Raspberry Pi Zero/1/2/3/4
- Температура эксплуатации: -20°С...+70°С
- Размеры: 85 х 61 х 13.5 мм
- Вес: 55 гр
Благодаря конструктивному исполнению и вариативностью вывода данных, все существующие дисплеи делятся на две группы — графические, способные рисовать геометрические фигуры и текстово-символьные. Жидкокристаллический дисплей LCD1602 принадлежит к последней, его экран позволяет формировать простые текстовые сообщения, состоящие из цифро-буквенных и математических ASCII-символов размером 5х8 графических точек (пикселей). Матрица экрана спроектирована таким образом, чтобы края расположенных рядом символов по вертикали и по горизонтали не сливались воедино, предусмотрен физический межсимвольный и междустрочный интервал. Встроенный блок памяти дисплея хранит набор предустановленных адресуемых символов латиницы и китайских иероглифов (пользователь может программно создавать свои собственные изображения символов). Главные компоненты модуля RGB LCD Pi PLate V2.0 напрямую связаны с микросхемой расширителя портов MCP23017, использующую шину I2C для обмена данными с контроллером Raspberry Pi. Задействованы вывод 3 (GPIO2/SDA1) и вывод 5 (GPIO3/SCL1), остальные контакты общего назначения свободны для применения в других целях. Все имеющиеся выводы питания и общего назначения стандартного 26-контактного GPIO-разъёма Raspberry Pi продублированы с лицевой стороны платы, предоставляя пользователю возможность в дальнейшем наращивать проект прочими функциональными модулями расширений или периферийными устройствами.
Интерфейс I2C/IIC
По умолчанию, расширителю портов MCP23017 по протоколу I2C назначен адрес 0х20h. На плате модуля RGB LCD Pi PLate V2.0, рядом с этой микросхемой, размещены три нераспаянные площадки под перемычки, обозначенные маркировкой А0, А1, А2. Комбинирование перемычек программирует новый I2C-адрес MCP23017 из восьми возможных вариантов.
A0 | A1 | A2 | Шестн. значение | Десят. значение |
0 | 0 | 0 | 0х20 | 32 |
0 | 0 | 1 | 0х21 | 33 |
0 | 1 | 0 | 0х22 | 34 |
0 | 1 | 1 | 0х23 | 35 |
1 | 0 | 0 | 0х24 | 36 |
1 | 0 | 1 | 0х25 | 37 |
1 | 1 | 0 | 0х26 | 38 |
1 | 1 | 1 | 0х27 | 39 |
Проверить доступность заданного адреса в операционной системе Raspbian перед установкой расширения RGB LCD Pi PLate V2.0, а также узнать его новое значение в случае изменения перемычек, позволяет полное сканирование шины I2C, выполняемое командой i2cdetect (в таблице могут отображаться одновременно несколько адресов, если к Raspberry Pi подключены другие устройства).
sudo i2cdetect -y 1 (0 для моделей с 256 МБ памяти)
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Микросхема MCP23017 имеет два набора портов: А (GPA0-GPA7) и B (GPB0-GPB7), подключенных к дисплею LCD1602A, кнопкам управления и светодиодному RGB-индикатору.
Банк А | Соединение | Банк B | Соединение |
GPA0 | Кнопка Select | GPB0 | Зелёный светодиод |
GPA1 | Кнопка Right | GPB1 | LCD1602A, D7 |
GPA2 | Кнопка Down | GPB2 | LCD1602A, D6 |
GPA3 | Кнопка Up | GPB3 | LCD1602A, D5 |
GPA4 | Кнопка Left | GPB4 | LCD1602A, D4 |
GPA5 | - | GPB5 | LCD1602A, E |
GPA6 | Красный светодиод | GPB6 | LCD1602A, RW |
GPA7 | Синий светодиод | GPB7 | LCD1602A, RS |
Программирование модуля RGB LCD Pi PLate V2.0
Позаботится выпуском оригинальной библиотеки для модуля с дисплеем LCD1602 производитель, видимо, не посчитал нужным. В целом, понимая схематику платы и общую взаимосвязь между компонентами модуля RGB LCD Pi PLate V2.0, опытному пользователю не составит большого труда написать собственную программную поддержку. Упростить поставленную цель и организовать полноценную работу модуля с экраном и элементами управления помогут примеры сторонней библиотеки Adafruit_CharLCDPlate, включающей множество полезных функций и эффектов: здесь и установка курсора в заданное положение, и включение/отключение экрана, и отображение/скрытие курсора на экране, мигание и подчеркивание, прокрутка текста в стороны, плавное перемещение текста к границам экрана и многое другое. Код библиотеки Adafruit_CharLCDPlate основан на языке Phyton версии 2.х (не совместим с версией 3.х). Библиотека не требует какой-либо установки, её содержимое должно быть расположено в одной папке.