Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot:exp30 [2020/05/20 18:08] labuser29products:laboratory_iot:exp30 [2024/11/14 17:45] (текущий) – [Программный код эксперимента] labuser29
Строка 16: Строка 16:
 _init() _init()
  
-DEFAULT_I2C_ADDR = 0x3F+DEFAULT_I2C_ADDR = 0x3F # Или 0x27 в зависимости от модели микросхемы на плате
  
 i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000) i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000)
Строка 68: Строка 68:
 </code> </code>
  
-Массив состоит из чисел, записанных в двоичной системе счисления. В этой форме очень удобно записывать. Единице соответствует включенный пиксель на данном месте, нулю — выключенный. В массиве 8 чисел — по одному на строку. Чтобы интерпретатор Python понял, что числа записаны в двоичной системе счисления они начинаются со специальных символов ''0b''. Можно было бы записать эти данные и в обычной десятичной системе, но только это не было бы наглядно. Например 0b10001 это десятичное число 17.+Массив состоит из чисел, записанных в двоичной системе счисления. В этой форме очень удобно записывать, ведь единице соответствует включенный пиксель на данном месте, нулю — выключенный. В массиве 8 чисел — по одному на строку. Чтобы интерпретатор Python понял, что числа записаны в двоичной системе счисления они начинаются со специальных символов ''0b''. Можно было бы записать эти данные и в обычной десятичной системе, но только это не было бы наглядно. Например 0b10001 это десятичное число 17. 
 + 
 +Таким же образом мы создаем второй символ. Теперь, когда символы созданы, их нужно записать в память дисплея.  
 +<code python[enable_line_numbers="2", start_line_numbers_at="33"]> 
 +lcd.custom_char(0, char1) 
 +lcd.custom_char(1, char2) 
 +</code> 
 + 
 +Символ из переменной ''char1'' записываем в память дисплея по адресу 0, а символ ''char2'' по адресу 1. 
 + 
 +Ставим курсор в левый верхний угол, на место первого символа. Это нулевое место нулевой строки так как нумерация мест и строк ведется от нуля: 
 +<code python[enable_line_numbers="2", start_line_numbers_at="36"]> 
 +lcd.move_to(0,0) 
 +</code> 
 + 
 +Печатаем на дисплее символы. Они выводятся туда, куда мы поставили курсор: 
 +<code python[enable_line_numbers="2", start_line_numbers_at="38"]> 
 +lcd.putchar(chr(0)) 
 +lcd.putchar(chr(1)) 
 +</code> 
 + 
 +Первый символ появился на первой строке в первом знакоместе, а второй на втором знакоместе благодаря тому, что курсор автоматически переместился на второе знакоместа после печати первого символа.  
 + 
 +==== Дополнительное задание ==== 
 +<WRAP center round tip 60%> 
 +  * Создай свой символ, например, подмигивающий или грустный смайлик 
 +  * Отобрази его на второй строке по середине 
 +</WRAP>