Следующая версия | Предыдущая версия |
products:laboratory_iot:exp4 [2020/05/13 12:53] – внешнее изменение 127.0.0.1 | products:laboratory_iot:exp4 [2024/11/07 21:01] (текущий) – [Дополнительное задание] labuser30 |
---|
===== Эксперимент 3. Кнопка и подтягивающий резистор ===== | ===== Эксперимент 4. Кнопка и подтягивающий резистор ===== |
| |
Познакомимся с кнопкой— важным электронным компонентом. Кнопка нужна везде, где требуется взаимодействие электроники с человеком. Для начала, рассмотрим, как устроена кнопка. Как можно догадаться, внутри корпуса кнопки находится пара металлических контактов. Когда кнопка находится в нормальном состоянии, ее контакты разомкнуты, а при нажатии— замыкаются. | Познакомимся с кнопкой— важным электронным компонентом. Кнопка нужна везде, где требуется взаимодействие электроники с человеком. Для начала, рассмотрим, как устроена кнопка. Как можно догадаться, внутри корпуса кнопки находится пара металлических контактов. Когда кнопка находится в нормальном состоянии, ее контакты разомкнуты, а при нажатии— замыкаются. |
//Рисунок 2. Неправильная схема подключения кнопки// | //Рисунок 2. Неправильная схема подключения кнопки// |
| |
Почему же эта схема неправильная? Дело в том, что когда кнопка нажата, на ножку микроконтроллера, действительно, подается напряжение питания, что является уровнем логической единицы, однако, когда кнопка не нажата, то на ножку не подается ничего. Говорят, что она "висит в водздухе"— то есть никуда не подключена. Такое состояние не является состоянием логического нуля. Состояние такого вывода может самопроизвольно меняться, например из-за статического электричества, или даже радиоволны. Чтобы получить состояние логического нуля, нужно подключить ножку к //земле//. Так называют минус питания, "общий" провод, относительно которого и отсчитывается напряжение во всей схеме. | Почему же эта схема неправильная? Дело в том, что когда кнопка нажата, на ножку микроконтроллера, действительно, подается напряжение питания, что является уровнем логической единицы, однако, когда кнопка не нажата, то на ножку не подается ничего. Говорят, что она "висит в воздухе"— то есть никуда не подключена. Такое состояние не является состоянием логического нуля. Состояние такого вывода может самопроизвольно меняться, например из-за статического электричества, или даже радиоволны. Чтобы получить состояние логического нуля, нужно подключить ножку к //земле//. Так называют минус питания, "общий" провод, относительно которого и отсчитывается напряжение во всей схеме. |
| |
Но как подключить кнопку, чтобы в одном состоянии она соединяла ножку с питанием, а в другом— с землей, ведь у нее только один контакт, который лизо замкнут, либо разомнкут? В таком случае используют резистор, с помощью которого ножку микроконтроллера //подтягивают// к противоположному уровню. | Но как подключить кнопку, чтобы в одном состоянии она соединяла ножку с питанием, а в другом— с землей, ведь у нее только один контакт, который либо замкнут, либо разомкнут? В таком случае используют резистор, с помощью которого ножку микроконтроллера //подтягивают// к противоположному уровню. |
| |
{{ :products:esp-iot:exp3.3.png?nolink |}} | {{ :products:esp-iot:exp3.3.png?nolink |}} |
| |
{{ :products:esp-iot:exp3.4.png?direct |}} | {{ :products:esp-iot:exp3.4.png?direct |}} |
//Рисунок 4. Электрическая принципиальная схема эксперимента №3// | //Рисунок 4. Электрическая принципиальная схема эксперимента// |
| |
На рисунке изображен токоограничительный резистор последовательно со светодиодом. При сборке схемы мы не будем устанавливать его сами так как он уже установлен на плате конструктора. | На рисунке изображен токоограничительный резистор последовательно со светодиодом. При сборке схемы мы не будем устанавливать его сами так как он уже установлен на плате конструктора. |
Соберем эту схему: | Соберем эту схему: |
{{ :products:esp-iot:exp3.png?direct&600 |}} | {{ :products:esp-iot:exp3.png?direct&600 |}} |
//Рисунок 5. Монтажная схема эксперимента №3// | //Рисунок 5. Монтажная схема эксперимента// |
| |
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== |
Теперь напишем программный код. Пусть, когда кнопка не нажата, светодиод не горит. А при нажатии кнопки— горит. | Теперь напишем программный код. Пусть, когда кнопка не нажата, светодиод не горит. А при нажатии кнопки — горит. |
| |
<file python Exp3.py[enable_line_numbers="2", start_line_numbers_at="1"]> | <file python Exp4.py[enable_line_numbers="2", start_line_numbers_at="1"]> |
from machine import Pin | from machine import Pin |
_init() | _init() |
Здесь мы впервые сталкиваемся с //условным оператором//. Оператор 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. Как изменить электрическую схему, чтобы добиться такого же результата, но без изменения программы? |
| |
</WRAP> | </WRAP> |
| |
| |