Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
products:laboratory_iot:exp4 [2020/05/13 16:55] – [Дополнительное задание] labuser29 | products:laboratory_iot:exp4 [2024/11/07 21:01] (текущий) – [Дополнительное задание] labuser30 |
---|
//Рисунок 2. Неправильная схема подключения кнопки// | //Рисунок 2. Неправильная схема подключения кнопки// |
| |
Почему же эта схема неправильная? Дело в том, что когда кнопка нажата, на ножку микроконтроллера, действительно, подается напряжение питания, что является уровнем логической единицы, однако, когда кнопка не нажата, то на ножку не подается ничего. Говорят, что она "висит в водздухе"— то есть никуда не подключена. Такое состояние не является состоянием логического нуля. Состояние такого вывода может самопроизвольно меняться, например из-за статического электричества, или даже радиоволны. Чтобы получить состояние логического нуля, нужно подключить ножку к //земле//. Так называют минус питания, "общий" провод, относительно которого и отсчитывается напряжение во всей схеме. | Почему же эта схема неправильная? Дело в том, что когда кнопка нажата, на ножку микроконтроллера, действительно, подается напряжение питания, что является уровнем логической единицы, однако, когда кнопка не нажата, то на ножку не подается ничего. Говорят, что она "висит в воздухе"— то есть никуда не подключена. Такое состояние не является состоянием логического нуля. Состояние такого вывода может самопроизвольно меняться, например из-за статического электричества, или даже радиоволны. Чтобы получить состояние логического нуля, нужно подключить ножку к //земле//. Так называют минус питания, "общий" провод, относительно которого и отсчитывается напряжение во всей схеме. |
| |
Но как подключить кнопку, чтобы в одном состоянии она соединяла ножку с питанием, а в другом— с землей, ведь у нее только один контакт, который лизо замкнут, либо разомнкут? В таком случае используют резистор, с помощью которого ножку микроконтроллера //подтягивают// к противоположному уровню. | Но как подключить кнопку, чтобы в одном состоянии она соединяла ножку с питанием, а в другом— с землей, ведь у нее только один контакт, который либо замкнут, либо разомкнут? В таком случае используют резистор, с помощью которого ножку микроконтроллера //подтягивают// к противоположному уровню. |
| |
{{ :products:esp-iot:exp3.3.png?nolink |}} | {{ :products:esp-iot:exp3.3.png?nolink |}} |
| |
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== |
Теперь напишем программный код. Пусть, когда кнопка не нажата, светодиод не горит. А при нажатии кнопки— горит. | Теперь напишем программный код. Пусть, когда кнопка не нажата, светодиод не горит. А при нажатии кнопки — горит. |
| |
<file python Exp4.py[enable_line_numbers="2", start_line_numbers_at="1"]> | <file python Exp4.py[enable_line_numbers="2", start_line_numbers_at="1"]> |
Здесь мы впервые сталкиваемся с //условным оператором//. Оператор if проверяет выполнение условия и исполняет код в зависимости от того выполнено условие или нет. Если условие выполняется, то выполняется код в блоке прямо под ним. Если условие ложно, то исполняется код в блоке ''else''. | Здесь мы впервые сталкиваемся с //условным оператором//. Оператор if проверяет выполнение условия и исполняет код в зависимости от того выполнено условие или нет. Если условие выполняется, то выполняется код в блоке прямо под ним. Если условие ложно, то исполняется код в блоке ''else''. |
| |
В нашем случае условием является ''button_value == 1''. Символ двойного равенства ''=='' это оператор сравнения. Он сравнивает значение выражения слева от себя со значением выражения справа от себя. Если эти значения равны, то равенство выполняется, иначе— нет. | В нашем случае условием является ''button_value == 1''. Символ двойного равенства ''=='' это оператор сравнения. Он сравнивает значение выражения слева от себя со значением выражения справа от себя. Если эти значения равны, то равенство выполняется, иначе — нет. |
| |
<WRAP center round info 60%> | <WRAP center round info 60%> |
==== Дополнительное задание ==== | ==== Дополнительное задание ==== |
<WRAP center round tip 60%> | <WRAP center round tip 60%> |
1. Как изменить программу, чтобы наоборот, когда кнопка не нажата— светодиод светился, а если нажата— гас? | 1. Как изменить программу, чтобы наоборот, когда кнопка не нажата — светодиод светился, а если нажата — гас? |
| |
2. Как изменить электрическую схему, чтобы добиться такого же результата, но без изменения программы? | 2. Как изменить электрическую схему, чтобы добиться такого же результата, но без изменения программы? |
| |
3. Как изменить программу, чтобы при нажатии и удержании кнопки светодиод мигал, а не горел непрерывно? | |
</WRAP> | </WRAP> |
| |
| |