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

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

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

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

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

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

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

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

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

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

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

Your ads will be inserted here by

Easy AdSense Pro.

Please go to the plugin admin page to paste your ad code.

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

Serial.begin(9600);

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

pinMode(button,INPUT);

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

int stateForButton = digitalRead(button);

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

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

 

Урок 8

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

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

 

ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ!


About alexlevchenko

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

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

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

* Copy This Password *

* Type Or Paste Password Here *