Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
products:laboratory_iot_c:exp29 [2024/11/15 16:47] – [Программный код эксперимента] labuser30 | products:laboratory_iot_c:exp29 [2024/11/15 16:55] (текущий) – [Программный код эксперимента] labuser30 |
---|
</file> | </file> |
| |
Сначала мы с помощью директивы ''#inclue'' подключаем библиотеку | Сначала мы с помощью директивы ''#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%> |