Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp30 [2020/05/20 17:50] – [Эксперимент 30. Пользовательские символы LCD] labuser29 | products:laboratory_iot:exp30 [2024/11/14 17:45] (текущий) – [Программный код эксперимента] labuser29 | ||
---|---|---|---|
Строка 7: | Строка 7: | ||
Смайлик и буква Ж. На символе смайлика мы подписали цифры 0 и 1. 0 соответствует выключеному пикселю, | Смайлик и буква Ж. На символе смайлика мы подписали цифры 0 и 1. 0 соответствует выключеному пикселю, | ||
==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
- | {{ : | + | {{ : |
// | // | ||
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
<file python Exp30.py[enable_line_numbers=" | <file python Exp30.py[enable_line_numbers=" | ||
+ | from machine import I2C, Pin | ||
+ | from esp8266_i2c_lcd import I2cLcd | ||
+ | _init() | ||
+ | DEFAULT_I2C_ADDR = 0x3F # Или 0x27 в зависимости от модели микросхемы на плате | ||
+ | |||
+ | i2c = I2C(scl=Pin(5), | ||
+ | lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, | ||
+ | lcd.backlight_on() | ||
+ | |||
+ | char1 = [ | ||
+ | 0b00000, | ||
+ | 0b00000, | ||
+ | 0b01010, | ||
+ | 0b01010, | ||
+ | 0b00000, | ||
+ | 0b10001, | ||
+ | 0b01110, | ||
+ | 0b00000 | ||
+ | ] | ||
+ | |||
+ | char2 = [ | ||
+ | 0b10101, | ||
+ | 0b10101, | ||
+ | 0b10101, | ||
+ | 0b01110, | ||
+ | 0b10101, | ||
+ | 0b10101, | ||
+ | 0b10101, | ||
+ | 0b00000 | ||
+ | ] | ||
+ | |||
+ | lcd.custom_char(0, | ||
+ | lcd.custom_char(1, | ||
+ | |||
+ | lcd.move_to(0, | ||
+ | |||
+ | lcd.putchar(chr(0)) | ||
+ | lcd.putchar(chr(1)) | ||
</ | </ | ||
+ | |||
+ | В программе мы как обычно подключили библиотеки, | ||
+ | |||
+ | <code python[enable_line_numbers=" | ||
+ | char1 = [ | ||
+ | 0b00000, | ||
+ | 0b00000, | ||
+ | 0b01010, | ||
+ | 0b01010, | ||
+ | 0b00000, | ||
+ | 0b10001, | ||
+ | 0b01110, | ||
+ | 0b00000 | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | Массив состоит из чисел, записанных в двоичной системе счисления. В этой форме очень удобно записывать, | ||
+ | |||
+ | Таким же образом мы создаем второй символ. Теперь, | ||
+ | <code python[enable_line_numbers=" | ||
+ | lcd.custom_char(0, | ||
+ | lcd.custom_char(1, | ||
+ | </ | ||
+ | |||
+ | Символ из переменной '' | ||
+ | |||
+ | Ставим курсор в левый верхний угол, на место первого символа. Это нулевое место нулевой строки так как нумерация мест и строк ведется от нуля: | ||
+ | <code python[enable_line_numbers=" | ||
+ | lcd.move_to(0, | ||
+ | </ | ||
+ | |||
+ | Печатаем на дисплее символы. Они выводятся туда, куда мы поставили курсор: | ||
+ | <code python[enable_line_numbers=" | ||
+ | lcd.putchar(chr(0)) | ||
+ | lcd.putchar(chr(1)) | ||
+ | </ | ||
+ | |||
+ | Первый символ появился на первой строке в первом знакоместе, | ||
+ | |||
+ | ==== Дополнительное задание ==== | ||
+ | <WRAP center round tip 60%> | ||
+ | * Создай свой символ, | ||
+ | * Отобрази его на второй строке по середине | ||
+ | </ |