Подключение кнопки

Автор Deny, 17:23:58

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Deny

Подключение кнопки

В этом примеры мы рассмотрим подключение кнопки к контроллеру Arduino. При нажатие кнопки мы будем зажигать встроенный светодиод. Большинство плат Arduino имеют встроенный SMT светодиод, подключенный к выходу 13 (pin 13).

Необходимые компоненты


контроллер Arduino
тактовая кнопка
10кОм резистор
контактная макетная плата
соединительные провода

Подключение



Подключаем выход питания (5V) и землю (Gnd), красным и черным проводом соответственно к макетной плате. Обычно на макетных платах для питания и земли используют крайние ряды контактов, как показано на рисунке. Третьим синим проводом мы соединяем цифровой пин 2 контроллера Arduino к контакту тактовой кнопки. К этому же контакту, либо к контакту, постоянно соединенному с ней в 4х штырковом исполнении, подключаем подтягивающий резистор 10 кОм, который в свою очередь соединяем с землей. Другой выход кнопки соединяем с питанием 5 В.
Когда тактовая кнопка не нажата, выход 2 подключен только к земле через подтягивающий резистор и на этом входе будет считываться LOW. А когда кнопка нажата появляется контакт между входом 2 и питанием 5В, и считываться будет HIGH.
Замечание: Чаще всего тактовые кнопки имеют по два контакта с каждой стороны так, как это показано на рисунке подключение. При этом по форме кнопка почти квадратная. ВАЖНО не перепутать при подключении какие контакты соединены, а какие замыкаются при нажатие. Лучше всего прозвонить кнопку если не уверены.
Можно также подключить кнопку наоборот — через подтягивающий резистор к питанию и через кнопку к земле. Тогда с входа будет считваться HIGH, а при нажатие кнопки LOW.
Если вход оставить неподключенным, то на входе будет считываться HIGH или LOW случайным образом. Именно поэтому мы используем подтягивающий резистор, чтобы задать определенное значение при ненажатой кнопке.
Схема


Код

код
расечатать?

[TD=class: content]/*[/TD]
[/TR]
[/TABLE]

[TD=class: content]  Кнопка[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content] Включаем и выключаем светодиод нажатием кнопки.[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content] created 2005[/TD]
[/TR]
[/TABLE]

[TD=class: content] by DojoDave <http://www.0j0.org>[/TD]
[/TR]
[/TABLE]

[TD=class: content] modified 28 Oct 2010[/TD]
[/TR]
[/TABLE]

[TD=class: content] by Tom Igoe[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content] This example code is in the public domain.[/TD]
[/TR]
[/TABLE]

[TD=class: content] */[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content]// задаем константы[/TD]
[/TR]
[/TABLE]

[TD=class: content]const int buttonPin = 2;     // номер входа, подключенный к кнопке[/TD]
[/TR]
[/TABLE]

[TD=class: content]const int ledPin =  13;      // номер выхода светодиода[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content]// переменные[/TD]
[/TR]
[/TABLE]

[TD=class: content]int buttonState = 0;         // переменная для хранения состояния кнопки[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content]void setup() {[/TD]
[/TR]
[/TABLE]

[TD=class: content]  // инициализируем пин, подключенный к светодиоду, как выход[/TD]
[/TR]
[/TABLE]

[TD=class: content]  pinMode(ledPin, OUTPUT);[/TD]
[/TR]
[/TABLE]

[TD=class: content]  // инициализируем пин, подключенный к кнопке, как вход[/TD]
[/TR]
[/TABLE]

[TD=class: content]  pinMode(buttonPin, INPUT);[/TD]
[/TR]
[/TABLE]

[TD=class: content]}[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content]void loop(){[/TD]
[/TR]
[/TABLE]

[TD=class: content]  // считываем значения с входа кнопки[/TD]
[/TR]
[/TABLE]

[TD=class: content]  buttonState = digitalRead(buttonPin);[/TD]
[/TR]
[/TABLE]

[TD=class: content][/TD]
[/TR]
[/TABLE]

[TD=class: content]  // проверяем нажата ли кнопка[/TD]
[/TR]
[/TABLE]

[TD=class: content]  // если нажата, то buttonState будет HIGH:[/TD]
[/TR]
[/TABLE]

[TD=class: content]  if (buttonState == HIGH) {[/TD]
[/TR]
[/TABLE]

[TD=class: content]    // включаем светодиод[/TD]
[/TR]
[/TABLE]

[TD=class: content]    digitalWrite(ledPin, HIGH);[/TD]
[/TR]
[/TABLE]

[TD=class: content]  }[/TD]
[/TR]
[/TABLE]

[TD=class: content]  else {[/TD]
[/TR]
[/TABLE]

[TD=class: content]    // выключаем светодиод[/TD]
[/TR]
[/TABLE]

[TD=class: content]    digitalWrite(ledPin, LOW);[/TD]
[/TR]
[/TABLE]

[TD=class: content]  }[/TD]
[/TR]
[/TABLE]


[/FONT]

[/FONT][/COLOR]
​Не говорите, если это не изменит тишину к лучшему.