КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

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

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

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

Интенсивность свечения будет регулироваться от 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 миллисекунд.                            
}
	



Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями