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

Плавное включение светодиода на Arduino ► выполняется с помощью ШИМ (PWM) сигнала. Рассмотрим схему и программу с циклом for для программирования Ардуино.

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

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

Видео. Плавное включение светодиода
Чтобы вспомнить, что такое Ардуино, используем простой скетч плавного включения светодиода. Для этого можно использовать цикл for. Заголовок данной конструкции состоит из трех частей: for (initialization; condition; increment) — initialization выполняется один раз, далее проверяется условие condition, если условие верно, то выполняется приращение increment и цикл повторяется пока верно условие (condition).

В приведенном примере мы будем плавно изменять яркость светодиода с помощью ШИМ, светодиод будет плавно разгораться, а затем плавно гаснуть. Данный пример можно использовать для декоративной подсветки в комнате на светодиодах или ночного светильника с управлением от пульта дистанционного управления. Подключите светодиод к аналоговому порту Pin6 и загрузите следующий скетч.

Управление светодиодом с помощью ШИМ Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • 1 светодиод и 1 резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».
Плавное мигание светодиодом на Ардуино
Схема. Плавное мигание светодиодом на Ардуино

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

#define LED_PIN 6 // задаем имя для Pin6

void setup() {
    pinMode(LED_PIN, OUTPUT); // инициализируем Pin6 как выход
}

void loop() {
   // плавное включение светодиода
   // начальное значение на Pin6 i=0, если i<=255, то прибавляем к i единицу
	for(int i=0;i<=255;i++) {
	analogWrite(LED_PIN, i);
	delay(5); // ставим задержку для эффекта
   }

   //плавное затухание светодиода
   // начальное значение на Pin6 i=255, если i>=255, то вычитаем от i единицу
	for(int i=255;i>=0;i--) {
	analogWrite(LED_PIN, i);
	delay(5); // ставим задержку для эффекта
   }

}

Пояснения к коду:

  1. цикл for повторяется до тех пор, пока верно условие i<=255 или i>=0;
  2. для цикла for следует обязательно прописывать в круглых скобках следующие значения — (инициализация; условие; приращение);
  3. конструкция цикла for должна располагаться между фигурными скобками { }.
1 Star2 Stars3 Stars4 Stars5 Stars (10 votes, average: 5,00 out of 5)
Загрузка...

Похожие записи по теме:

8 комментариев для “Пример: Плавное включение светодиода Ардуино”

  1. Получилось сделать плавное зажигание светодиода, как на схеме. Почему не получается сделать тоже самое на аналоговых портах A0 — A5? Спасибо.

  2. Потому что аналоговые порты А0-А5 не поддерживают функцию ШИМ, они являются аналоговыми входами…

    1. Все верно, ШИМ сигнал на Arduino UNO поддерживают только 3,5,6,9,10 и 11 порты. На Arduino Mega ШИМ портов больше — со 2 по 13 Пин.

      Аналоговые порты А0 — А5 могут работать в режиме INPUT и поддерживают преобразование аналогового сигнала в цифровой в десятичном виде от 0 до 1023. Также порты А0 — А5 могут работать в режиме OUTPUT, но выдают только цифровой сигнал (вкл./выкл.).

  3. Можно ли с помощью arduino сделать затухание в течении 2 часов. Требуется для курятника.

    1. Можно, увеличив задержку в строчке — delay(5). А на сколько увеличить — это надо уже считать

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

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