Оглавление:

Угасание и исчезновение светодиода: 3 шага
Угасание и исчезновение светодиода: 3 шага

Видео: Угасание и исчезновение светодиода: 3 шага

Видео: Угасание и исчезновение светодиода: 3 шага
Видео: Arduino /// Урок 4 - Плавное включение и выключение светодиодов 2024, Июль
Anonim
Угасание и исчезновение светодиода
Угасание и исчезновение светодиода

Следующие шаги представляют собой эксперименты, демонстрирующие, как работают светодиоды. Они показывают, как равномерно уменьшить яркость светодиода, а также как постепенно увеличивать и уменьшать яркость.

Тебе понадобится:

  • Ардуино (я использовал дуэт)
  • Макетная плата
  • 5 мм красный светодиод
  • Резистор 330 Ом (не критично, 330-560 Ом подойдет.)
  • Сплошной монтажный провод 22 калибра

Детали, необходимые для этих экспериментов, включены во все стартовые комплекты Arduino.

Шаг 1: объяснение импульсной модуляции

Объяснение импульсной модуляции
Объяснение импульсной модуляции
Объяснение импульсной модуляции
Объяснение импульсной модуляции
Объяснение импульсной модуляции
Объяснение импульсной модуляции

Светодиоды всегда работают при одинаковом напряжении независимо от яркости. Яркость определяется прямоугольным осциллятором, и время, в течение которого напряжение высокое, определяет яркость. Это называется широтно-импульсной модуляцией (ШИМ). Это контролируется функцией Arduino analogWrite (pin, n), где n имеет значение от 0 до 255. AnalogWrite () выводит ШИМ, а не настоящий аналог. Если n = 2, светодиод будет вдвое ярче, чем n = 1. Яркость всегда удваивается, когда n удваивается. Таким образом, n = 255 будет вдвое ярче, чем n = 128.

Значение n часто выражается в процентах, называемых рабочим циклом. На рисунках показаны осциллограммы для рабочих циклов 25, 50 и 75%.

Шаг 2: неравномерное затемнение

Неравномерное затемнение
Неравномерное затемнение
Неравномерное затемнение
Неравномерное затемнение

Постройте схему, как показано на схеме. Это похоже на схему мигания светодиода. Он использует вывод 9, потому что вам нужно использовать вывод с включенной ШИМ.

Скопируйте / вставьте эскиз ниже в IDE Arduino и запустите его.

Вы заметите, что чем ярче светодиод, тем медленнее он гаснет. По мере приближения к самому тусклому свету он будет очень быстро тускнеть.

установка void ()

{pinMode (9, ВЫХОД); } void loop () {int pin = 9; для (int я = 255; я> -1; я--) {analogWrite (контакт, я); задержка (10); } для (int я = 0; я <256; я ++) {analogWrite (контакт, я); задержка (10); }}

}

На следующем шаге показано, как уменьшить яркость светодиода с постоянной скоростью и одним оператором for.

Шаг 3: вверх и вниз в одном For ()

Чтобы светодиод гаснул с постоянной скоростью, задержка () должна увеличиваться с экспоненциальной скоростью, потому что половина рабочего цикла всегда дает половину яркости. Моей первой мыслью было попробовать использовать функцию map (), но она линейна.

Линия:

int d = (16-я / 16) ^ 2;

вычисляет обратный квадрат яркости для определения длительности задержки.

Скопируйте / вставьте приведенный ниже эскиз в IDE Arduino, и вы увидите, что светодиод будет постепенно появляться и исчезать с постоянной скоростью.

установка void ()

{pinMode (9, ВЫХОД); } void loop () {int x = 1; int pin = 9; для (int я = 0; я> -1; я = я + х) {int d = (16-я / 16) ^ 2; analogWrite (контакт, я); задержка (d); если (я == 255) х = -1; // переключаем направление на пике}}

Рекомендуемые: