| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| products:laboratory_iot_c:exp29 [2024/11/15 16:46] – [Программный код эксперимента] labuser30 | products:laboratory_iot_c:exp29 [2024/11/15 16:55] (текущий) – [Программный код эксперимента] labuser30 |
|---|
| </file> | </file> |
| |
| Сначала мы подключаем библиотеки, которые необходимы для работы программы. | Сначала мы с помощью директивы ''#inclue'' подключаем библиотеку установленную библиотеку. |
| <code python[enable_line_numbers="2", start_line_numbers_at="1"]> | <code arduino[enable_line_numbers="2", start_line_numbers_at="1"]> |
| from machine import I2C, Pin | #include <LCDI2C_Multilingual.h> |
| from esp8266_i2c_lcd import I2cLcd | |
| </code> | </code> |
| |
| На шине I2C каждое ведомое устройство имеет адрес. Чтобы обратиться к устройству, необходимо знать его адрес. Наша микросхема, которая управляет дисплеем, имеет адрес ''0x3F'' или ''0x27''. Попробуй оба варианта, чтобы понять на каком адресе находится именно твоя микросхема I2C. | На шине I2C каждое ведомое устройство имеет адрес. Чтобы обратиться к устройству, необходимо знать его адрес. Наша микросхема, которая управляет дисплеем, имеет адрес ''0x3F'' или ''0x27''. Попробуй оба варианта, чтобы понять на каком адресе находится именно твоя микросхема I2C. |
| |
| Настраиваем контроллер шины I2C: | |
| <code python[enable_line_numbers="2", start_line_numbers_at="7"]> | |
| i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000) | |
| </code> | |
| |
| Здесь мы сообщили контроллеру, что для сигнала SCL нужно использовать вывод 5, а для SDA — 4. Задали частоту шины 400 кГц. Настроенный объект контроллера записали в переменную ''i2c''. | |
| |
| Теперь настраиваем дисплей. | Теперь настраиваем дисплей. |
| <code python[enable_line_numbers="2", start_line_numbers_at="8"]> | <code python[enable_line_numbers="2", start_line_numbers_at="5"]> |
| lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16) | LCDI2C_Generic lcd(DEFAULT_I2C_ADDR, 16, 2); |
| </code> | </code> |
| Создаем объект дисплея и в качестве параметров передаем объект контроллера I2C, адрес устройства, количество строк дисплея и количество символов в строке, соответственно. | Создаем объект дисплея и в качестве параметров передаем адрес дисплея, количество строк дисплея и количество символов в строке, соответственно. |
| |
| Теперь мы имеем объект дисплея, с которым можно работать. Начнем с включения подсветки. Для этого используем функцию ''backlight_on()'': | Теперь мы имеем объект дисплея, с которым можно работать. Сначала нам нужно его инициализировать с помощью функции ''init()''. После чего включим подсветку, для этого используем функцию ''setBacklight(0)'': |
| <code python[enable_line_numbers="2", start_line_numbers_at="9"]> | <code arduino[enable_line_numbers="2", start_line_numbers_at="8"]> |
| lcd.backlight_on() | lcd.init(); |
| | lcd.setBacklight(0); |
| </code> | </code> |
| |
| Выведем текст на дисплей с помощью функции ''putstr()'' | Выведем текст на дисплей с помощью функции ''println()'' |
| <code python[enable_line_numbers="2", start_line_numbers_at="9"]> | <code python[enable_line_numbers="2", start_line_numbers_at="10"]> |
| lcd.putstr("Hello, World!\nSecond Line") | lcd.println("Hello, World!"); |
| | lcd.println("Second Line"); |
| </code> | </code> |
| |
| В качестве параметра в функцию ''putstr()'' передается текст для вывода на дисплей. Можно заметить, что мы передаем одну строку, но на дисплее текст отображается в две строки. Дело в том, что переданная строка содержит специальный символ новой строки ''\n''. Этот символ сообщает дисплею, что необходимо перейти на новую строку. | В качестве параметра в функцию ''println()'' передается текст для вывода на дисплей. |
| ==== Дополнительное задание ==== | ==== Дополнительное задание ==== |
| <WRAP center round tip 60%> | <WRAP center round tip 60%> |