Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:laboratory_iot:exp5 [2020/05/16 14:59] – [Схема эксперимента] labuser29 | products:laboratory_iot:exp5 [2024/11/11 16:40] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ===== Эксперимент 5. Эмуляция кнопки с фиксацией ===== | ===== Эксперимент 5. Эмуляция кнопки с фиксацией ===== | ||
| + | Попробуем имитировать кнопку с фиксацией. После первого нажатия на кнопку светодиод зажигается, | ||
| ==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
| Схема эксперимента не изменилась по сравнению с прошлым, | Схема эксперимента не изменилась по сравнению с прошлым, | ||
| - | {{ : | + | {{ : |
| - | // | + | // |
| На рисунке изображен токоограничительный резистор последовательно со светодиодом. При сборке схемы мы не будем устанавливать его сами так как он уже установлен на плате конструктора. | На рисунке изображен токоограничительный резистор последовательно со светодиодом. При сборке схемы мы не будем устанавливать его сами так как он уже установлен на плате конструктора. | ||
| Строка 11: | Строка 12: | ||
| Соберем эту схему: | Соберем эту схему: | ||
| {{ : | {{ : | ||
| - | // | + | // |
| ==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
| Строка 39: | Строка 40: | ||
| old_button_value = button_value | old_button_value = button_value | ||
| </ | </ | ||
| + | |||
| + | Создадим две переменные: | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Считываем состояние кнопки и проверяем факт нажатия: | ||
| + | <code python [enable_line_numbers=" | ||
| + | button_value = Button.value() | ||
| + | if old_button_value != button_value and button_value == 1: | ||
| + | </ | ||
| + | |||
| + | Выражение '' | ||
| + | |||
| + | Иными словами проверяем условие того, что состояние кнопки изменилось И, что новым состоянием кнопки является нажатое состояние. Это выражение позволяет выявить факт нажатия на кнопку. | ||
| + | |||
| + | После регистрации факта нажатии на кнопку нам нужно изменить состояние светодиода на противоположное. Если он был включен — выключаем. Если выключен — включаем. | ||
| + | |||
| + | Напоследок обновляем старое состояние состояние кнопки. | ||
| + | <code python [enable_line_numbers=" | ||
| + | old_button_value = button_value | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ==== Дополнительные задания ==== | ==== Дополнительные задания ==== | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | Модифицируй программу так, чтобы светодиод зажигался или выключался только после двух нажатий. Подсказка: | ||
| + | </ | ||
| + | |||