Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot:exp27 [2020/05/17 22:44] labuser29products:laboratory_iot:exp27 [2020/05/18 11:20] (текущий) – [Программный код эксперимента] labuser29
Строка 29: Строка 29:
 segments = [14, 13, 4, 5, 12, 16, 15] # ABCDEFG segments = [14, 13, 4, 5, 12, 16, 15] # ABCDEFG
  
 +for s in segments:
 +    led = Pin(s, Pin.OUT).off()
 +    
 digits = [ digits = [
     [1, 1, 1, 1, 1, 1, 0], # 0     [1, 1, 1, 1, 1, 1, 0], # 0
Строка 60: Строка 63:
 </file> </file>
  
-Логика работы программы аналогична прошлому эксперименту, кроме основного цикла.+Объявляем переменные и настраиваем кнопку. 
 +<code python [enable_line_numbers="2", start_line_numbers_at="5"]> 
 +button = Pin(0, Pin.IN) 
 +state_old = 1 
 +count = 0 
 +</code> 
 + 
 +В переменной ''state_old'' будем хранить прошлое состояние кнопки, чтобы обнаруживать нажатия, а в ''count'' будем хранить количество зарегистрированных нажатий. 
 + 
 + 
 +Логика работы программы аналогична прошлому эксперименту, кроме основного цикла. Сначала определяем состояние кнопки. Если новое состояние "нажато" и прошлое "не нажато", то увеличиваем значение счетчика нажатий.  
 + 
 +<code python [enable_line_numbers="2", start_line_numbers_at="36"]> 
 +new_state = button.value() 
 +    if new_state == 0 and state_old == 1: 
 +        count = count + 1 
 +</code> 
 + 
 +Проверяем не переполнился ли счетчик, если количество нажатий было больше 9, то обнуляем его. 
 + 
 +<code python [enable_line_numbers="2", start_line_numbers_at="39"]> 
 +    if count > 9: 
 +        count = 0 
 +</code> 
 + 
 +Записываем текущее состояние кнопки как старое и отображаем текущее состояние счетчика нажатий на дисплее. 
 + 
 +<code python [enable_line_numbers="2", start_line_numbers_at="41"]> 
 +    state_old = new_state 
 +    draw_time(count) 
 +</code> 
 + 
 +==== Дополнительные задания ==== 
 + 
 +<WRAP center round tip 60%> 
 +  * Добавь к цифрам 0..9 еще буквы A, b, C d E F, чтобы счетчик переключал символы от 0 до F. 
 +  * Сделай обратный счетчик, чтобы его значение уменьшалось при нажатии 
 +</WRAP>