23.02.2017 19:54 Количество просмотров материала 3271 Время на чтение ~1.5 мин
Увеличить | Уменьшить Распечатать страницу

Программирование Arduino урок 8 - кнопка

Программирование Arduino урок 8 - кнопка

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

Программирование Arduino урок 8 - кнопка

Контроль состояния нажатия кнопки будем реализовывать на основе серийного канала связи между платой и компьютером через USB кабель.

Для того, чтобы выполнить практическую часть проекта, нам понадобится:

Собираем схему

Программирование Arduino урок 8 - кнопка

Два джампера будут обеспечивать питание схемы: 5 вольт и земля.

Третий джампер будет идти от 13-го цифрового вывода к одному из выводов кнопки. Парный вывод этой же кнопки будет подключаться через подтягивающий резистор на землю.

При нажатии на кнопку цепь замыкается. В момент отпускания (и дальнейшего «не нажатого» состояния) связь между её выводами отсутствует. Через подтягивающий резистор вывод заведён на землю и посылает сигнал в виде 0 (LOW). В момент нажатия (и дальнейшего «нажатого» состояния) два вывода замыкаются, формируя сигнал в виде 1 (HIGH).

Подтягивающий резистор нужен для того, чтобы микроконтроллер мог распознать моменты, когда кнопка не нажата. В нажатом состоянии всё понятно – цепь замкнута. Однако в случае, когда кнопка не нажата, определить её состояние проблематично. Это мы знаем, что она отпущена, а МК в негодовании – вот он и лупит случайные значения 0 или 1. Но когда отпущенная кнопка будет заводится на землю, МК точно будет знать что кнопка не нажата.

Программирование Arduino урок 8 - кнопка

Алгоритм программы следующий:

  • Кнопка нажата - питание поступает в цепь;
  • Кнопка не нажата – вывод, через подтяжку (10 кОм резистор) будет заведён на землю.

Подключаем функцию для обмена данными. Скорость обмена 9600 бит в секунду.

Serial.begin(9600);

Конфигурим цифровой вывод 13, на вход.

pinMode(button,INPUT);

Объявляем переменную, в которой будет храниться данные о состоянии кнопки. Ей мы и будем присваивать значение, которое будет считано с 13 вывода.

int stateForButton = digitalRead(button);

Как только плата считает информацию, выводим её на компьютер с помощью команды Serial.println(stateForButton);

Откроем Serial Monitor в программной среде Arduino IDE. При нажатии кнопки будет выводиться значение «1», а при отпускании «0».

Программирование Arduino урок 8 - кнопка

 

Программирование Arduino урок 8 - кнопка

Урок 8

Продолжение следует..

Картотека программирования

 

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]


Вверх