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

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


Рассмотрим на этом занятии плавное включение светодиода с помощью ШИМ (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() // процедура setup
{
    pinMode(LED_PIN, OUTPUT); // инициализируем Pin6 как выход
}

void loop() // процедура 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); // ставим задержку для эффекта
}
delay(500); // ставим паузу в 0,5 секунды
}

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

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

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

  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, но выдают только цифровой сигнал (вкл./выкл.).

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

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