Функции digitalWrite() и analogWrite() в языке Arduino IDE — это наиболее популярные команды с которыми сталкивается каждый начинающий программист. Именно эти команды используются для мигания светодиодами, плавного включения светодиода и других уроков по программированию Arduino для начинающих. Рассмотрим подробнее синтаксис этих функций, использование digitalWrite и analogWrite в Ардуино с примерами программ.
СОДЕРЖАНИЕ ►
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- светодиоды и резисторы
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
Самое простое применение команд digitalWrite и analogWrite в скетче — это управление светодиодами, подключенным к микроконтроллеру Ардуино. Но прежде, чем использовать эти функции в скетче, необходимо установить пин, к которому подключен светодиод в режим OUTPUT. Это делается с помощью функции pinMode. На нашем сайте вы также можете ознакомиться с описанием функции pinMode в языке программирования Arduino.
Что такое функция digitalWrite() Arduino, описание

Для использования данной функции в программе и подключения светодиода можно использовать любой пин на микроконтроллере. В том числе аналоговые входы A0-A5, обозначенные, как Analog In. Функция digitalWrite() подает значение HIGH или LOW на цифровой пин, указанный в функции. При значении HIGH на выходе микроконтроллера будет напряжение 5 Вольт, а при значении LOW на выходе будет напряжение 0 Вольт.
Синтаксис функции digitalWrite() в Arduino IDE
digitalWrite(pin, value);
- pin — номер входа / выхода (пина)
- value — значение HIGH (1) или LOW (0)
Для демонстрации, что такое digitalWrite в Arduino IDE — разберем простой пример с мигающим светодиодом. Можете подключить светодиод к плате, как на картинке выше или, используя беспаечную макетную плату. Более подробно урок с мигающими светодиодами рассмотрен на нашем сайте здесь — Мигалка со светодиодами на Ардуино. Подключите плату Ардуино к компьютеру и загрузите следующую программу в микроконтроллер.
Скетч с использованием команды digitalWrite()
#define LED 13
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
Что такое функция analogWrite() Arduino, описание

Команду analogWrite поддерживают только пины на микроконтроллере с ШИМ модуляцией. На большинстве плат Arduino ШИМ сигнал поддерживают пины 3, 5, 6, 9, 10 и 11, а на плате Arduino Mega пины с 2 по 13. Подробнее о Широтно-импульсной модуляции вы можете ознакомиться здесь — Что такое ШИМ Ардуино. Внимание! Порты A0-A5, обозначенные, как Analog In не имеют никакого отношения к ШИМ модуляции и analogWrite.
Синтаксис функции analogWrite() в Arduino IDE
analogWrite(pin, value);
- pin — номер выхода (пина) на который подаем ШИМ сигнал
- value — значение ШИМ от 0 (полностью выключено) до 255 (сигнал подан постоянно)
Подключите светодиод к 10 пину и загрузите следующий скетч. В программе будет меняться частота ШИМ (по англ. PWM) сигнала от 0 (светодиод полностью выключен) до 255 (максимальная яркость). При значении 127 светодиод будет светиться в пол силы. При этом следует понимать, что на выходе микроконтроллера будет меняться не напряжение в Вольтах, а частота PWM импульса. Это так называемое псевдо аналоговое напряжение.
Скетч с использованием команды analogWrite()
#define LED 10
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
analogWrite(LED, 0); // скважность 0%
delay(1000);
analogWrite(LED, 64); // скважность 25%
delay(1000);
analogWrite(LED, 127); // скважность 50%
delay(1000);
analogWrite(LED, 191); // скважность 75%
delay(1000);
analogWrite(LED, 255); // скважность 100%
delay(1000);
}
Заключение. Мы рассмотрели функции analogWrite() и digitalWrite() в языке Ардуино, что они означают и как их использовать в программе. Также рекомендуем вам ознакомиться со следующими уроками: Плавное включение светодиода с помощью команды analogWrite, Поочередное включение светодиодов с помощью digitalWrite и Функция delay Ардуино.
