analogWrite()

analogWrite() — это функция для генерации ШИМ-сигнала (широтно-импульсной модуляции) на выводах микроконтроллера. Используется для имитации аналогового сигнала на цифровых пинах.

Принцип работы

Функция создает импульсный сигнал с изменяемой скважностью. Значение 0 соответствует выключенному состоянию, 255 — полностью включенному. Промежуточные значения создают различные уровни яркости или мощности.

Синтаксис

analogWrite( pin , value )

Параметры

pin - номер пина, на котором будет генерироваться ШИМ-сигнал
value - значение сигнала в диапазоне от 0 до 255

Пример

// Настройка пина как выхода
void setup() {
  pinMode(9, OUTPUT);  // Пин 9 поддерживает ШИМ
}

// Плавное изменение яркости
void loop() {
  for(int i = 0; i <= 255; i++) {
    analogWrite(9, i);  // Плавное увеличение яркости
    delay(10);
  }
  
  for(int i = 255; i >= 0; i--) {
    analogWrite(9, i);  // Плавное уменьшение яркости
    delay(10);
  }
}

Примечание

Пины с поддержкой ШИМ

Функция работает только на пинах, имеющих поддержку PWM (Pulse Width Modulation):

  • На Arduino Uno: 3, 5, 6, 9, 10, 11
  • На других платах пины могут отличаться

Практическое применение

  • Функция широко используется для:
  • Управления яркостью светодиодов
  • Регулировки скорости двигателей
  • Управления сервоприводами
  • Изменения громкости динамиков

Важные особенности

Частота ШИМ-сигнала в Arduino составляет около 490 Гц. Это значение может варьироваться в зависимости от используемого пина.

Ограничения

  • Функция работает только на пинах с поддержкой ШИМ
  • Диапазон значений ограничен 0-255
  • Частота сигнала фиксирована

Тип функции

Комментарии

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

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