analogWrite()

Описание

Формирует заданное аналоговое напряжение на выводе в виде ШИМ-сигнала. Может использоваться для варьирования яркости свечения светодиода или управления скоростью вращения двигателя. После вызова analogWrite(), на выводе будет непрерывно генерироваться ШИМ-сигнал с заданным коэффициентом заполнения до следующего вызова функции analogWrite() (либо до момента вызова digitalRead() или digitalWrite(), взаимодействующих с этим же выводом). Частота ШИМ составляет приблизительно 490 Гц.

На большинстве плат Arduino (на базе микроконтроллеров ATmega168 или ATmega328) функция analogWrite() работает с выводами 3, 5, 6, 9, 10 и 11. На Arduino Mega функция работает с выводами со 2 по 13. На более старых версиях Arduino (на базе микроконтроллера ATmega8) функция analogWrite() работает только с выводами 9, 10 и 11.

Arduino Due поддерживает функцию analogWrite() для выводов со 2 по 13, а также для выводов DAC0 и DAC1. В отличие от ШИМ-выводов, DAC0 и DAC1 являются выводам цифро-аналоговых преобразователей, поэтому при вызове analogWrite() ведут себя как обычные аналоговые выходы.

При работе с analogWrite() предварительный вызов функции pinMode() для переключения выводов в режим «выход» не требуется.

Функция analogWrite() не имеет ничего общего с аналоговыми выводами и функцией analogRead().

Синтаксис

Параметры

pin: вывод, на котором будет формироваться напряжение.

value: коэффициент заполнения – лежит в пределах от 0 (всегда выключен) до 255 (всегда включен).

Возвращаемые значения

нет

Примечания и известные проблемы

На выводах 5 и 6 генерируется ШИМ-сигнал с коэффициентом заполнения большим, чем заданное ожидаемое значение. Это происходит в результате взаимодействия с функциями millis() и delay(), которые используют тот же внутренний таймер, что применяется для генерирования ШИМ-сигнала. Данный эффект более ярко выражен при малых значениях задаваемого коэффициента заполнения (0 — 10) и может проявляться в неполном выключении выводов 5 и 6 при коэффициенте равном 0.

Пример

Формирование на выводе, управляющим светодиодом, напряжения пропорционального напряжению на потенциометре.

Смотрите также