Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
products:aruno:exp4 [2020/05/24 09:46] – alexnik | products:aruno:exp4 [2020/11/05 12:52] (текущий) – [Подключение кнопки] alexnik |
---|
| |
==== Подключение кнопки ==== | ==== Подключение кнопки ==== |
Из предыдущих экспериментов мы помним, что, микроконтроллер на пины может подавать //логический нуль// или //логическую единицу//,подробнее можно ознакомиться в базе наний по [[theory:logic_1_0|ссылке]], но как получить их с помощью кнопки? Логично подключить кнопку между выводом микроконтроллера и напряжением питания. Когда кнопка нажимается, напряжение питания подается на ножку, что является //логической единицей//. Такая схема изображена на рисунке 2. | Из предыдущих экспериментов мы помним, что, микроконтроллер на пины может подавать //логический нуль// или //логическую единицу//,подробнее можно ознакомиться в базе знаний по [[theory:logic_1_0|ссылке]], но как получить их с помощью кнопки? Логично подключить кнопку между выводом микроконтроллера и напряжением питания. Когда кнопка нажимается, напряжение питания подается на ножку, что является //логической единицей//. Такая схема изображена на рисунке 2. |
| |
{{ :products:esp-iot:exp3.2.png?nolink |}} | {{ :products:ardu:exp3.2.png?nolink |}} |
//Рисунок 2. Неправильная схема подключения кнопки// | //Рисунок 2. Неправильная схема подключения кнопки// |
| |
Но как подключить кнопку, чтобы в одном состоянии она соединяла ножку с питанием, а в другом— с землей, ведь у нее только один контакт, который либо замкнут, либо разомкнут? В таком случае используют резистор, с помощью которого ножку микроконтроллера //подтягивают// к противоположному уровню. | Но как подключить кнопку, чтобы в одном состоянии она соединяла ножку с питанием, а в другом— с землей, ведь у нее только один контакт, который либо замкнут, либо разомкнут? В таком случае используют резистор, с помощью которого ножку микроконтроллера //подтягивают// к противоположному уровню. |
| |
{{ :products:esp-iot:exp3.3.png?nolink |}} | {{ :products:ardu:exp3.3.png?nolink |}} |
//Рисунок 3. Правильные схемы подключения кнопки// | //Рисунок 3. Правильные схемы подключения кнопки// |
| |
==== Схема эксперимента ==== | ==== Схема эксперимента ==== |
| |
{{ :products:esp-iot:exp3.4.png?nolink |}} | {{ :products:ardu:exp3.4.png?nolink |}} |
//Рисунок 4. Электрическая принципиальная схема эксперимента// | //Рисунок 4. Электрическая принципиальная схема эксперимента// |
| |
pinMode(keyPin,INPUT);//установки режима пина кнопки на "вход" | pinMode(keyPin,INPUT);//установки режима пина кнопки на "вход" |
pinMode(ledPin,OUTPUT);//установки режима пина светодиода на "выход" | pinMode(ledPin,OUTPUT);//установки режима пина светодиода на "выход" |
} | } |
| |
void loop() { | void loop() { |
digitalWrite(ledPin,LOW); | digitalWrite(ledPin,LOW); |
} | } |
} | } |
</file> | </file> |
| |
</code> | </code> |
| |
разберем на составляющие строку с объявлением переменной ''keyPin'' | разберем на составляющие строку с объявлением переменной ''keyPin''\\ |
''int'' - тип переменной для хранения чисел,\\ | ''int'' - тип переменной для хранения чисел,\\ |
''keyPin'' - имя переменной,\\ | ''keyPin'' - имя переменной,\\ |
после инициализации переменных начинается выполнение функции ''setup()'', в которой настраиваются режимы работы пинов контроллера, пин 12 на "вход" сигнала, а пин 2 на "выход"\\ | после инициализации переменных начинается выполнение функции ''setup()'', в которой настраиваются режимы работы пинов контроллера, пин 12 на "вход" сигнала, а пин 2 на "выход"\\ |
| |
в функции ''loop()'' программа проверяет если нажата кнопка то светодиод зажигается, если кнопка отпущена светодиод гаснет.\\ | в функции ''loop()'' программа проверяет в каком положении находится кнопка\\ |
<code cpp[enable_line_numbers="15", start_line_numbers_at="9"]> | <code cpp[enable_line_numbers="15", start_line_numbers_at="9"]> |
void loop() { | void loop() { |
if(digitalRead(keyPin) == HIGH) { | if(digitalRead(keyPin) == HIGH) { |
digitalWrite(ledPin,HIGH); | digitalWrite(ledPin,HIGH); |
} | } |
else { | else { |
digitalWrite(ledPin,LOW); | digitalWrite(ledPin,LOW); |
} | } |
| } |
</code> | </code> |
Здесь мы впервые сталкиваемся с условным оператором. Оператор ''if'' проверяет выполнение условия и исполняет код в зависимости от того выполнено условие или нет. Если условие выполняется, то выполняется код в блоке прямо под ним. Если условие ложно, то исполняется код в блоке ''else''. | Здесь мы впервые сталкиваемся с условным оператором. Оператор ''if'' проверяет выполнение условия и исполняет код в зависимости от того выполнено условие или нет. Если условие выполняется, то выполняется код в блоке прямо под ним. Если условие ложно, то исполняется код в блоке ''else''. |