Python
В этой инструкции для управления дисплеем используем интерпретатор CircuitPython, который позволяет писать программы на упрощённом python.
Для работы с ЖК дисплеем нам помогут две библиотеки robotclass_character_lcd и robotclass_pca9534, которые имеются в наборе библиотек от RobotClass. Всё, что нам нужно сделать для их установки — это скопировать всю папку robotclass_character_lcd и файл robotclass_pca9534.mpy в папку lib на накопителе CIRCUITPY.
Также понадобятся библиотеки adafruit_character_lcd и adafruit_bus_device из стандартного набора CircuitPython:
Более подробно о работе с библиотеками CircuitPython мы писали в одной из наших инструкций:
Программа
Для составления программы используем среду разработки Mu.
Пусть, самая первая наша программа будет выводить текст «Hello, world!» в первой строке дисплея. Начнём с подключения всех необходимых библиотек. Помним, что в python это делается с помощью команды import.
Кроме вышеуказанных библиотек нам будут нужны еще две базовые библиотеки:
- time — предоставляет функцию sleep для организации паузы;
- board — хранит названия всех контактов платы контроллера и их синонимы.
Подключаем все библиотеки при помощи команды import:
import time
import board
from adafruit_bus_device import i2c_device
from robotclass_character_lcd.character_lcd_i2c import Character_LCD_I2C
Дисплей инициализируется командой:
i2c = board.I2C()
lcd = Character_LCD_I2C(i2c, 16, 2)
Здесь 16 и 2 — количество символов и строк в дисплее.
Вся программа целиком:
import board
import time
from adafruit_bus_device import i2c_device
from robotclass_character_lcd.character_lcd_i2c import Character_LCD_I2C
i2c = board.I2C()
lcd = Character_LCD_I2C(i2c, 16, 2)
# включение подсветки
lcd.backlight = True
# вывод текста
lcd.message = "Hello, world!"
Загружаем её на Графит-S3, и смотрим что творится на дисплее. Может быть две распространённые ситуации.
1) На дисплее отобразится надпись «Hello, world!». Значит мы все правильно подключили, и контраст каким-то чудесным образом оказался изначально правильно настроен.
2) На дисплее отобразится целый ряд черных прямоугольников — требуется настройка контраста! Именно для этого на модуле LCD-I2C есть небольшой потенциометр с ручкой. Крутим его от одного края, до другого, до момента пока на дисплее не появится четкая надпись.
Нестандартные контакты I2C и адрес.
Как известно, на Графит-S3 для I2C можно выбрать любые GPIO контакты. Также у модуля LCD-I2C может быть адрес, отличный от 0x3F. В такой ситуации инициализация дисплея будет выглядеть следующим образом.
import busio
i2c = busio.I2C(9, 10)
lcd = Character_LCD_I2C(i2c, 16, 2, 0x38)
