Это старая версия документа!
В теоретической части (перед экспериментом) мы познакомились с интерфейсами, в частности с шиной I2C. Кроме того, мы изучили способ подключения дисплея в нашем конструкторе. Разберемся с библиотекой для работы с дисплеем.
Ранее мы использовали стандартную библиотеку не замечая этого, т.к. она подключена по умолчанию. В ней определены различные функции вроде pinMode(), digitalWright() и многие другие. Теперь мы впервые столкнемся с пользовательской библиотекой. Это библиотека функций, которую написал кто-то другой или, даже ты сам, и теперь желаешь использовать для своего эксперимента. Отличие заключается в том, что стандартная библиотека является частью языка программирования, а пользовательские библиотеки перед использованием нужно загрузить в Arduino IDE.
Открыть окно «Управление библиотеками» можно с помощью
В поле поиска введи название нужной библиотеки, в нашем случае «LiquidCrystal I2C Multilingual», ниже должно появиться название библиотеки, имя автора и номер версии. Нажми кнопку «Установить» и дождись установки библиотеки.
Когда библиотека установлена, можно приступить к сборке схемы и написанию программы.
Вся сборка заключается в подключении двух проводов:
Рисунок 1. Монтажная схема эксперимента
Внимание! В зависимости от модели микросхемы I2C, установленной в Лаборатории IoT, адрес на шине может быть 0x3F или 0x27. Запусти данный пример с указанием адреса 0x3F или 0x27, чтобы узнать какой вариант актуален для твоей платы.
#include <LCDI2C_Multilingual.h> #define DEFAULT_I2C_ADDR 0x3F // Или 0x27 в зависимости от твоей платы IoT LCDI2C_Generic lcd(DEFAULT_I2C_ADDR, 16, 2); void setup() { lcd.init(); lcd.setBacklight(0); lcd.println("Hello, World!"); lcd.println("Second Line"); } void loop() { }
Сначала мы с помощью директивы #inclue
подключаем библиотеку
from machine import I2C, Pin from esp8266_i2c_lcd import I2cLcd
На шине I2C каждое ведомое устройство имеет адрес. Чтобы обратиться к устройству, необходимо знать его адрес. Наша микросхема, которая управляет дисплеем, имеет адрес 0x3F
или 0x27
. Попробуй оба варианта, чтобы понять на каком адресе находится именно твоя микросхема I2C.
Настраиваем контроллер шины I2C:
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000)
Здесь мы сообщили контроллеру, что для сигнала SCL нужно использовать вывод 5, а для SDA — 4. Задали частоту шины 400 кГц. Настроенный объект контроллера записали в переменную i2c
.
Теперь настраиваем дисплей.
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
Создаем объект дисплея и в качестве параметров передаем объект контроллера I2C, адрес устройства, количество строк дисплея и количество символов в строке, соответственно.
Теперь мы имеем объект дисплея, с которым можно работать. Начнем с включения подсветки. Для этого используем функцию backlight_on()
:
lcd.backlight_on()
Выведем текст на дисплей с помощью функции putstr()
lcd.putstr("Hello, World!\nSecond Line")
В качестве параметра в функцию putstr()
передается текст для вывода на дисплей. Можно заметить, что мы передаем одну строку, но на дисплее текст отображается в две строки. Дело в том, что переданная строка содержит специальный символ новой строки \n
. Этот символ сообщает дисплею, что необходимо перейти на новую строку.