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

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

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

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

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

Плавное мигание светодиодом с помощью ШИМ

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

  • Плата Arduino Uno;
  • Макетная плата;
  • 1 светодиод;
  • 1 резистор 220 Ом;
  • Провода «папка-папка» и «папка-мамка».

Подключите светодиод к аналоговому порту Pin6 и загрузите следующий скетч.
Скачать скетч плавного включения светодиода miganie_led.ino

#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.

На что обратить внимание:

  1. Для цикла for следует обязательно прописывать в круглых скобках следующие значения — (инициализация; условие; приращение);;
  2. Конструкция цикла for должна располагаться между фигурными скобками { }.

Задание для самостоятельного выполнения:

  1. Измените скорость включения и выключения светодиода в скетче.
  2. Установите плавное включение светодиода при срабатывании датчика звука.

1 Star2 Stars3 Stars4 Stars5 Stars (4 votes, average: 5,00 out of 5)
Загрузка...

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

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