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

Плавное включение и выключение светодиодов

Плавное включение и выключение светодиодов

На этой странице вы найдете инструкции по сборке электрической цепи со светодиодами для их плавного розжига и затухания от платы Ардуино с помощью сигнала ШИМ (широтно-импульсной модуляции). Цифровые выходы с ШИМ (PWM) модуляцией позволяют выводить сигнал с различными импульсами pwm. Рассмотрим, как плавно мигать одним или сразу двумя светодиодами на микроконтроллере Arduino в цикле for.

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

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

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

  1. Поочередное включение светодиодов от Ардуино
  2. Включение светодиода кнопкой от Ардуино
  3. Широтно-импульсная модуляция PWM Arduino

Чтобы генерировать псевдо аналоговое напряжение на выходе Arduino, состояние вывода должно быстро изменяться. Именно изменение частоты ШИМ сигнала будет изменять яркость светодиода, подключенного к плате. Только 6 выводов Arduino Uno и на плате Nano обеспечивают ШИМ (широтно-импульсную модуляцию) — 3, 5, 6, 9, 10 и 11. Для модуляции ШИМ сигнала в программе необходимо использовать функцию analogWrite().

Плавное включение и выключение светодиода

Плавное включение и выключение светодиода

Плавный розжиг светодиода производится с помощью цикла for в котором происходит увеличение или уменьшение переменной int i. При этом цикл for будет выполняться i раз, меняя при каждом проходе значение pwm сигнала на выходе 10 с помощью команды analogWrite(). После подключения светодиода к пину 10 Ардуино, по схеме размещенной выше, загрузите следующую программу с дискретно мигающим светодиодом.

Скетч плавного розжига и затухания светодиода


#define BLU 10

void setup() {
  pinMode(BLU, OUTPUT);
}

void loop() {
  for(int i = 0; i <= 255; i++) {
     analogWrite(BLU, i);
     delay(10);
  }

  for(int i = 255; i >= 0; i--) {
     analogWrite(BLU, i);
     delay(10);
  }
}

Плавное мигание светодиодами от Ардуино

Плавное мигание светодиодами от Ардуино

Следующий пример программы позволяет управлять сразу двумя светодиодами с помощью ШИМ микроконтроллера Arduino. При этом первый светодиод будет плавно включаться, а второй светодиод плавно затухать одновременно. Заголовок цикла for состоит из трех частей (инициализация; условие; инкремент) — если условие истинно, выполняется инкремент и цикл повторяется до тех пор, пока условие не станет ложным.

Скетч для плавного мигания двумя светодиодами

#define RED 11
#define BLU 10

void setup() {
  pinMode(RED, OUTPUT);
  pinMode(BLU, OUTPUT);
}

void loop() {
  for(int i = 0; i <= 255; i++) {
     analogWrite(RED, i);
     analogWrite(BLU, 255 - i);
     delay(10);
  }
 
  for(int i = 255; i >= 0; i--) {
     analogWrite(RED, i);
     analogWrite(BLU, 250 - i);
     delay(10);
  }
}

Заключение. Чтобы плавно управлять выходным напряжением на выходе Arduino, следует использовать цифровые контакты микроконтроллера. По определению, цифровой сигнал может иметь два значения: HIGH (высокий уровень = 5 В), либо LOW (низкий уровень = 0 В). Но цифровые контакты с ШИМ, позволяют генерировать псевдо аналоговый сигнал в диапазоне от 0 до 255 при использовании команды analogWrite() в программе.

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

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

newzaym
➜