Перейти к содержанию

Включение светодиода кнопкой Ардуино

Включение светодиода кнопкой Ардуино

Включение светодиода с помощью кнопки Arduino может быть выполнено несколькими способами: можно управлять светодиодом с помощью одной или двух кнопок. Также можно модулировать интенсивность яркость светодиода от кнопки. Рассмотрим все возможности подключения тактовой кнопки и светодиода к плате Ардуино на примерах программ со схемами, можно также использовать сенсорные кнопки в представленных примерах.

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

  • Arduino Uno / Arduino Nano / Arduino Mega
  • тактовые кнопки
  • светодиоды
  • резисторы
  • макетная плата
  • коннекторы

Дополнительные материалы на эту тему:

  1. Как подключить тактовую кнопку к Ардуино
  2. Функция pinMode в Ардуино, INPUT_PULLUP
  3. Игра со светодиодами и кнопками на Ардуино

К микроконтроллеру Ардуино тактовые кнопки подключаются двумя способами: с подтягивающим резистором (пин платы запрограммирован в режиме работы 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 с помощью кнопки. Вы узнали, что светодиодом можно управлять с помощью одной кнопки и что его можно включать/выключать с помощью двух кнопок. Кроме того, можно изменять яркость светодиода с помощью тактовых кнопок и ШИМ-сигнала. Все приведенные примеры могут быть использованы в различных проектах с платой Ардуино.

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

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

newzaym
➜