Включение светодиода с помощью кнопки Arduino может быть выполнено несколькими способами: можно управлять светодиодом с помощью одной или двух кнопок. Также можно модулировать интенсивность яркость светодиода от кнопки. Рассмотрим все возможности подключения тактовой кнопки и светодиода к плате Ардуино на примерах программ со схемами, можно также использовать сенсорные кнопки в представленных примерах.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- тактовые кнопки
- светодиоды
- резисторы
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
К микроконтроллеру Ардуино тактовые кнопки подключаются двумя способами: с подтягивающим резистором (пин платы запрограммирован в режиме работы INPUT) и без резистора (пин находится в режиме работы INPUT_PULLUP). Эти способы рассмотрены были ранее в обзоре — Как подключить кнопку к Ардуино. В этой статье мы будем использовать управление светодиодом от тактовой кнопки без подтягивающего резистора.
Подключение светодиода и кнопки к Ардуино

Управлять светодиодом от Ардуино можно с помощью одной или двух кнопок. Для включения светодиода с помощью кнопки Arduino соберите схему, как показано на рисунке. Обратите внимание, что сенсорная кнопка в схеме на макетной плате подключена к микроконтроллеру без подтягивающего резистора, так как пин 2 платы Arduino подключен к +5 Вольт через встроенный резистор в режиме работы порта INPUT_PULLUP.
Скетч включение и выключение светодиода от кнопки
#define LED 10
#define BUT 2
boolean buttonWasUp = true;
boolean ledEnabled = false;
void setup() {
pinMode(LED, OUTPUT);
pinMode(BUT, INPUT_PULLUP);
}
void loop() {
boolean buttonIsUp = digitalRead(BUT);
if (buttonWasUp && !buttonIsUp) {
delay(10);
buttonIsUp = digitalRead(BUT);
if (!buttonIsUp) {
ledEnabled = !ledEnabled;
digitalWrite(LED, ledEnabled);
}
}
buttonWasUp = buttonIsUp;
}
Подключение светодиода и двух кнопок Ардуино

Программа для управления светодиодом с помощью двух кнопок. Обратите внимание, что при использовании конфигурации порта платы в режиме INPUT_PULLUP цифровой вход поднимается до +5 Вольт. По этой причине значение входящего сигнала будет инвертировано. Когда тактовая кнопка, подключенная к GND, отпущена — сигнал на входе Ардуино высокий «1». При нажатии кнопки, на входе сигнал станет низким «0».
Скетч для управления светодиодом от двух кнопок
#define LED 10
#define BT1 2
#define BT2 4
boolean button1WasUp = true;
boolean button2WasUp = true;
void setup() {
pinMode(LED, OUTPUT);
pinMode(BT1, INPUT_PULLUP);
pinMode(BT2, INPUT_PULLUP);
}
void loop() {
boolean button1IsUp = digitalRead(BT1);
boolean button2IsUp = digitalRead(BT2);
if (button1WasUp && !button1IsUp) {
delay(10);
button1IsUp = digitalRead(BT1);
if (!button1IsUp) { digitalWrite(LED, LOW); }
}
if (button2WasUp && !button2IsUp) {
delay(10);
button2IsUp = digitalRead(BT2);
if (!button2IsUp) { digitalWrite(LED, HIGH); }
}
button1WasUp = button1IsUp;
button2WasUp = button2IsUp;
}
Регулировка яркости светодиода от кнопок

В следующем примере вам также понадобятся две кнопки и один светодиод, как показано на схеме выше. Но вместо простого включения и выключения светодиода мы будем увеличивать и уменьшать яркость светодиода с помощью сигнала широтно-импульсной модуляции микроконтроллера. Соберите схему и загрузите программу в плату Ардуино, чтобы понять, как управлять светодиодом от тактовой кнопки с микроконтроллером.
Скетч управление яркостью светодиода от кнопок
#define PLUS_BUTTON 2
#define MINUS_BUTTON 4
#define LED 10
int brightness = 100;
boolean plusUp = true;
boolean minusUp = true;
void setup() {
pinMode(LED, OUTPUT);
pinMode(PLUS_BUTTON, INPUT_PULLUP);
pinMode(MINUS_BUTTON, INPUT_PULLUP);
}
void loop() {
analogWrite(LED, brightness);
plusUp = handleClick(PLUS_BUTTON, plusUp, +20);
minusUp = handleClick(MINUS_BUTTON, minusUp, -20);
}
boolean handleClick(int buttonPin, boolean wasUp, int delta) {
boolean isUp = digitalRead(buttonPin);
if (wasUp && !isUp) {
delay(10);
isUp = digitalRead(buttonPin);
if (!isUp)
brightness = constrain(brightness + delta, 0, 255);
}
return isUp;
}
Заключение. Мы изучили несколько примеров того, как управлять светодиодом Arduino с помощью кнопки. Вы узнали, что светодиодом можно управлять с помощью одной кнопки и что его можно включать/выключать с помощью двух кнопок. Кроме того, можно изменять яркость светодиода с помощью тактовых кнопок и ШИМ-сигнала. Все приведенные примеры могут быть использованы в различных проектах с платой Ардуино.
