Arduino. Подключение тактовой кнопки.

Для подключения светодиода к Arduino, нам нужно:

  1. Плата Arduino. x1
    arduino uno
  2. Компьютер(для написания и загрузке кода, а так же мы будем брать с него электричество). x1
  3. Провод для соединения компьютера и платы. x1
    USBwire
  4. Тактовая кнопка.x1
    button
  5. Резистор 10 КОм. x1
    resistor10kom
  6. Провода . x5
    wire
  7. Макетная плата (для удобства сборки) x1
    bread board
  8. В схеме я указываю внешний источник питания, но питание можно брать с платы.

Схем подключения тактовой кнопки несколько, рассмотрим сначала две , схема со стягивающим резистором и схема с подтягивающим резистором.

 

Схема со стягивающим резистором:

питание берётся с платы Arduino

ArduinoButtonPullupResistor1_2_bbArduinoButtonPullupResistor1_2_схема

button1

При использовании внешнего источника питания:

 

ArduinoButtonPullupResistor1_1_bb ArduinoButtonPullupResistor1_1_Shem

Данная схема работает следующим образом, при нажатии кнопки на штырьке будет напряжение равное напряжению источника питания. При отпускании кнопки, штырёк заземлится и напряжение снимется.

Схема с подтягивающим резистором.

Питание берётся с платы Arduino:

ArduinoButtonPullupResistor2_2_bbArduinoButtonPullupResistor2_2_схемаbutton2

При использовании внешнего источника питания:

ArduinoButtonPullupResistor2_1_bb ArduinoButtonPullupResistor2_1_схема

Здесь ситуация противоположная схеме со стягивающим резистором. При нажатии на кнопку штырёк заземляется и напряжения нет. При отпускании кнопки на штырьке появляется напряжение равное напряжению на источнике питания.

Скетч:

Для данных схем можно использовать один и тот же скетч. Возьмём стандартный скетч:

Файл -> Примеры ->02.Digital->Button;

Убираем комментарии, и получаем вот такой код:

Данный код выполняет следующие действие:

Если на штырьке 2 есть напряжение, загорается светодиод. Если напряжения нет светодиод тухнет. Большинство кода уже разобрано в статье Arduino. Подключение светодиода, по этому сосредоточимся на новых участках кода.

И так в блоке, где задаются глобальные переменные, кроме ledPin на 13 штырьке (не забываем, что на этом штырьке у большенства плат Arduino уже подключен светодиод. Иначе вам придётся его подключить.) Заданы переменные :

В buttonPin будет хранится номер штырька, к которому подключена кнопка. Слово const обозначает, что эта переменная является константой, то есть она не будет меняться во время выполнения кода.

Вторая переменная

И в ней будет хранится состояние кнопки, для дальнейшей обработки.

 

В функции setup инициализируются штырьки, уже известная pinMode(ledPin, OUTPUT); по скетчу «Blinc» и инициализируем штырёк с кнопкой:

Для инициализации штырька, для получения с него сигнала, так же используется функция pinMode. Первый параметр в нём как и раньше номер штырька, а второй INPUT (можно перевести как вход).

Теперь мы можем снимать с него значения, что мы и делаем в функции loop:

 

Первая команда в этой функции:

Мы заносим в переменную buttonState значение штырька. Наличие напряжения = HIGH = 1. Отсутствие напряжения = LOW = 0.

Дальше мы функцией if делаем разветвление в программе:

Если значение buttonState является HIGH, то есть на нашем штырьке есть напряжение, то

Включаем напряжение на светодиод.

Иначе (если напряжение на штырьке нет):

Эта проверка будет бесконечно повторяться в цикле, до перезагрузки платы.

Скетч закончился.

 

Есть ещё одна схема, которую обычно рисуют перечёркнутым крестом и говорят, что так не правильно, посмотрим на неё, так как эфект очень интересный:

ArduinoButtonBad_1_bb ArduinoButtonBad_1_схема

button3

 

(На видео до нажатия кнопки светодиод моргает, после нажатия кнопки горит ровно.)

На видео видно, что при замыкании схемы, на штырьке есть напряжения. А в разомкнутом состоянии проводник играет роль антены, и происходят ложные срабатывания нажатия кнопки. Тоесть схема в размкнутом состоянии выглядит как то так:

ArduinoButtonBad_2_bb

И не известно, поймает она в данный момент сигнал или нет.

 

Но сделать «простую» схему подключения кнопки можно, суть такова, мы включим на ножку кнопки напряжение, а кнопрой будем заземлять её. На самом деле мы реализуем схему с подтягивающим резистором, только в этот раз мы используем подтягивающий ресистр на самой плате Arduino.

изменим схему подключения:

ArduinoButton3_bbArduinoButton3_схема

button4

Теперь поменяем скетч:

В этом скетче мы,в функции setup на штырьке с кнопкой включили напряжение:

И теперь при нажатии кнопки напряжение на штырьке падает и лампочка выключается.

Другие статьи по программированию плат Arduino можно посмотреть здесь.

Комментарии:

Комментарии 1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *