НАШ МАГАЗИН - SHOP.MUSBENCH.COM
Карта Сайта

Урок 9. Ввод и Вывод.

Учебный курс Ардуино. Опрос кнопок и датчиков


       
    
До сих пор вы учились управлять светодиодами с помощью кода, который управлял одним из выходов платы Arduino. В этом уроке мы будем осваивать взаимодействие со входами. Ваша плата Arduino может быть запрограммирована на опрос электрических сигналов,  поступающих на ее входа. Мы попробуем реализовать входную цепь , которая сможет работать как с логическими сигналами (переключатель) так и различать аналоговые входные сигналы (с потенциометром  или переменным резистором).
   
Переключатель представляет собой механическое устройство, которое соединяет или разрывает электрическую цепь, используя рычаг или кнопку. Ваша крошечная тактильная кнопка - всего лишь один из членов очень большой и разнообразной семьи электромеханических устройств.

Переменный резистор представляет собой компонент с изменяемым электрическим сопротивлением. В дополнение к потенциометру (с ручкой), используемому в этом уроке, вы можете найти и другие устройства, работа которых основана на изменяемом сопротивлении: датчики давления (силовой чувствительный резистор также известный как FSR), резисторы, зависящие от силы света (LDR или фоторезистор) и аналоговые датчики температуры.


Что потребуется для этого урока:

- Компьютер с программой Arduino

- Плата Arduino Uno

- USB A - B кабель

- Макетная плата - breadboard половинного размера

- Гибкие провода-перемычки для breadboard

- Потенциометр на 10 К

- Одна маленькая кнопка

- Один красный светодиод

- Один резистор сопротивлением от 220 Ом до 1 К

- Один резистор сопротивлением 10 К

Пластиковое основание для удобного крепления платы Ардуино и макетной платы

- Небольшой мотор постоянного тока

- Транзистор PN2222

- Диод 1N4001


Часть 1. Цифровой вход
    
   
 
     
Давайте подготовиться к составлению новой схемы. Возьмите несколько проводов - перемычек для макетной платы, красный светодиод, резистор 1K (код: коричневый-черный-красный-золотой), резистор 10K (код: коричнево-черно-оранжевое золото) и небольшую кнопку из вашего комплекта. Отформуйте выводы вашему 10K резистору также, как вы это делали в предыдущих уроках.
  
  
  
  
Во-первых, подключите светодиод к контакту 13 Arduino, как и в первой схеме, с проводом от контакта 13 платы до положительного вывода вашего светодиода и соедините резистора 1K, с отрицательным выводом светодиода и с землей.
  
   
   
   
Затем подключите кнопку как на фото, чтобы она опиралась на разделительную линию центра вашего макета. Подключите резистор 10K от одного из выводов кнопки на шину питания 5В. Подключите провод к этому же ряду и подсоедините его к контакту 2 Arduino.
  
  
   
   
Другой вывод кнопки соедините с землёй.
  
  
Нажмите «Начать симуляцию» в модуле Tinkercad Circuits и попробуйте нажать (и удерживать) кнопку, чтобы увидеть, что делает код. Нажмите кнопку «Код», чтобы просмотреть текст программы.
   
   
  
   
Этот пример можно найти в программном обеспечении Arduino, перейдя в меню Файл -> Примеры -> 02.Digital -> Button. Откройте его на своем компьютере и загрузите в плату Arduino Uno. Светодиод должен загораться, но при каждом нажатии кнопки выключаться.
  
   
   
Дальше мы рассмотрим код программы более подробно
  
   
// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);