Главная chevron_right Наши уроки chevron_right Arduino chevron_right Урок №1. Регулируем двумя кнопками яркость светодиода

Урок №1. Регулируем двумя кнопками яркость светодиода

Учимся управлять яркостью светодиода с помощью двух кнопок и ШИМ на Arduino. Разбираем схему подключения на макетной плате, подбор резисторов и написание скетча

Сегодня мы будем управлять яркостью светодиода с помощью ШИМ каналов.

Схема подключения на макетной плате:

Интенсивность свечения будет регулироваться от 0 до 254 единиц, где 0 - светодиод выключен, а 254 - горит максимально (Например при 127 яркость будет на 50%).

Для этого нам понадобится:

Для подключения светодиода необходимо использовать резистор. Номинал резистора подбирается для каждого светодиода индивидуально, в зависимости от его рабочего напряжения и тока. Обычно резистор в 1 кОм. Можно использовать как универсальный вариант.

Управление реализуем с помощью двух тактовых кнопок. Подключать тактовые кнопки необходимо через подтягивающие резисторы (К земле, GND), для защиты от статических наводок (Ложные срабатывания кнопок от одного лишь касания и тд.). Номинал может быть различный. Рекомендуем вам использовать резисторы 10 кОм - 100 кОм.

Код программы:

int led = 11;         //  Номер Pin к которому подключен диод
int brightness =0;    //  Переменная в которой хранится уровень яркости (От 0 до 254)
int buttonPlus=9;     //  Номер Pin к которому подключена кнопка
int buttonMinus=10;   //  Номер Pin к которому подключена кнопка -
void setup()  {
  pinMode(led, OUTPUT); // Порт 11 (led) будет работать как Выход.
}
void loop()  { // Этот цикл будет выполняться бесконечное количество раз.
  if (digitalRead(buttonPlus) == HIGH) {
    brightness   +=   5;
  }   // Делаем проверку, если вход под номером 9 (buttonPlus) имеет состояние  5 В. Увеличиваем значение переменной яркости на 5 единиц.
  if (digitalRead(buttonMinus) == HIGH) {
    brightness -=  5;
  }   // Делаем проверку, если вход под номером 10 (buttonMinus) имеет состояние  5 В. Уменьшаем значение переменной яркости на 5 единиц.
  brightness = constrain(brightness, 0, 254); // Эта функция контролирует, что бы переменная brightness не стала больше 254 и меньше 0, если значение вылазит за границу то функция 0 или 254
  analogWrite(led, brightness);    // Устанавливаем состояние яркости для светодиода
  delay(50); // Пауза 50 миллисекунд.
}

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

Что понадобится

Это быстрый ориентир по основным модулям и деталям. Полный список для повторения проекта смотрите в самой статье.

1 позиция
Все уроки Arduino