Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:laboratory_iot:exp27 [2020/05/17 22:30] – создано labuser29 | products:laboratory_iot:exp27 [2020/05/18 11:20] (текущий) – [Программный код эксперимента] labuser29 | ||
|---|---|---|---|
| Строка 5: | Строка 5: | ||
| ==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
| Добавим кнопку к схеме собранной ранее. | Добавим кнопку к схеме собранной ранее. | ||
| - | {{ : | + | {{ : |
| // | // | ||
| Строка 12: | Строка 12: | ||
| </ | </ | ||
| - | {{ : | + | {{ : |
| // | // | ||
| Строка 18: | Строка 18: | ||
| ==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
| - | <file python | + | <file python |
| from machine import Pin | from machine import Pin | ||
| import time | import time | ||
| Строка 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 | ||
| Строка 59: | Строка 62: | ||
| draw_time(count) | draw_time(count) | ||
| </ | </ | ||
| + | |||
| + | Объявляем переменные и настраиваем кнопку. | ||
| + | <code python [enable_line_numbers=" | ||
| + | button = Pin(0, Pin.IN) | ||
| + | state_old = 1 | ||
| + | count = 0 | ||
| + | </ | ||
| + | |||
| + | В переменной '' | ||
| + | |||
| + | |||
| + | Логика работы программы аналогична прошлому эксперименту, | ||
| + | |||
| + | <code python [enable_line_numbers=" | ||
| + | new_state = button.value() | ||
| + | if new_state == 0 and state_old == 1: | ||
| + | count = count + 1 | ||
| + | </ | ||
| + | |||
| + | Проверяем не переполнился ли счетчик, | ||
| + | |||
| + | <code python [enable_line_numbers=" | ||
| + | if count > 9: | ||
| + | count = 0 | ||
| + | </ | ||
| + | |||
| + | Записываем текущее состояние кнопки как старое и отображаем текущее состояние счетчика нажатий на дисплее. | ||
| + | |||
| + | <code python [enable_line_numbers=" | ||
| + | state_old = new_state | ||
| + | draw_time(count) | ||
| + | </ | ||
| + | |||
| + | ==== Дополнительные задания ==== | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | * Добавь к цифрам 0..9 еще буквы A, b, C d E F, чтобы счетчик переключал символы от 0 до F. | ||
| + | * Сделай обратный счетчик, | ||
| + | </ | ||