Простой пример управления яркостью светодиода с помощью функции analogWrite(). AnalogWrite() использует широтно-импульсную модуляцию (ШИМ). Эффект изменения яркости достигается за счет очень быстрого, повторяющегося переключения напряжения на выходе с 0В на +5В (для некоторых плат стандартное напряжение +3.3В).
Необходимые компоненты
- контроллер Arduino
- макетная плата
- светодиод
- резистор 220 Ом
Подключение
Подключаем анод (обычно длинная ножка) светодиода через резистор сопротивлением 220 Ом к выходу номер 9 (pin 9). Катод (короткая ножка) подсоединяем напрямую к земле (Grd).

Схема

Код
В секции setup() кода устанавливаем режим выхода для вход/выхода 9 (pin 9).
Функция analogWrite(), которая циклически вызывается в теле скетча, принимает два аргумента: номер выхода и значение ширины импульса ШИМ в диапазоне от 0 до 255.
Для управление яркостью светодиода, его плавного зажигания и плавного затухания, мы будем изменять значение ширины импульса, передаваемое в функцию analogWrite(). При значение 0 светодиод выключен, при 255 светодиод светит на полную яркость. В приведенном ниже скетче ширина импульса задается переменной brightness. Шаг изменения этого значения задан переменной fadeAmount.
Для плавного изменения яркости мы вводим задержку в конце главного цикла (тела) скетча — delay(30).
analogWrite(9, brightness); |
brightness = brightness + fadeAmount; |
if (brightness == 0 || brightness == 255) { |
fadeAmount = -fadeAmount ; |
Смотрите также