📌 Pulse-Width Modulation (PWM)

PWM — метод управления аналоговыми величинами с помощью цифрового сигнала, путём изменения длительности импульса при фиксированной частоте.

🧠 Как работает

PWM-сигнал — это прямоугольная волна, где изменяется длительность импульса (ширина), но частота остаётся постоянной.

  • Duty Cycle (скважность) — процент времени, когда сигнал находится в высоком состоянии (HIGH)
  • Среднее напряжение = (duty cycle) × (макс. напряжение)
  • Используется Timer и GPIO пин в режиме ШИМ
  • Управление может быть ручным или аппаратным (через MCU/SoC)

Формула среднего напряжения:


Vavg = Vmax × (T_on / T_total)

⚙️ Где применяется

ОбластьПрименение
Motor ControlУправление скоростью вращения
LED-драйвераРегулировка яркости
AudioГенерация простых звуковых волн
Power ElectronicsИмпульсные источники питания
Signal GenerationАналоговые выходы в MCU

💻 Пример (Arduino C)

int led = 9;
void setup() {
  pinMode(led, OUTPUT);
}
void loop() {
  analogWrite(led, 128); // 50% duty cycle (из 255)
}

📐 Сигнал PWM

|‾‾‾‾‾|     |‾‾‾‾‾|     |‾‾‾‾‾|     ← 75% duty cycle
|     |_____|     |_____|     |

🧩 Связанные технологии

  • PWM Mode — аппаратная реализация в MCU

  • GPIO — пины, поддерживающие PWM-выход

  • DAC — альтернатива для аналоговых сигналов

  • H-Bridge — используется с PWM для управления моторами

✅ Преимущества

  • Энергоэффективный способ управления мощностью

  • Простая реализация с использованием Timer

  • Высокая точность регулирования аналоговых величин

❌ Недостатки

  • Требует фильтрации для получения “чистого” аналогового сигнала

  • Зависимость от тактирования и точности Timer

  • Электромагнитные наводки при высокочастотной коммутации