← Все вопросы

Что такое ШИМ (PWM) простыми словами?

Задан 5 месяцев назад1.2к просмотров2 ответа
10

В Arduino есть функция analogWrite и слово ШИМ (PWM). Не понимаю, как цифровой пин, у которого только 0 и 1, может плавно регулировать яркость. Объясните, что такое ШИМ простыми словами.

2 ответа

12
✓ Принятый ответ — помог автору

ШИМ (широтно-импульсная модуляция, PWM) — это способ «как будто» выдать промежуточное напряжение, имея только два состояния: включено (HIGH) и выключено (LOW).

Идея: пин очень быстро мигает — включается и выключается сотни раз в секунду. Меняется доля времени, когда он включён (она называется «скважность», по-английски duty cycle).

  • Включён 50% времени → светодиод горит вполовину яркости.
  • Включён 20% времени → тускло.
  • Включён 90% времени → почти полная яркость.

Глаз не успевает заметить мигание (оно слишком быстрое) и видит усреднённую яркость. Мотор по той же причине крутится медленнее или быстрее — он усредняет импульсы по инерции.

В Arduino это делается командой analogWrite(пин, значение), где значение от 0 до 255:

  • analogWrite(pin, 0) — выключено.
  • analogWrite(pin, 127) — примерно половина.
  • analogWrite(pin, 255) — полная мощность.

Важно: ШИМ работает не на всех пинах. На Arduino Uno это пины с пометкой ~ (3, 5, 6, 9, 10, 11).

Где применяют: регулировка яркости светодиодов, скорости моторов, громкости, нагрева. Это не настоящее «среднее напряжение», а быстрые импульсы, но для большинства нагрузок эффект тот же.

4

Аналогия, которая помогает: представь, что ты быстро-быстро щёлкаешь выключателем лампы. Если держишь включённой дольше, чем выключенной, — в среднем светлее. Вот ШИМ и есть такое «щёлканье», только тысячи раз в секунду.

И помни: яркость по ШИМ для глаза не совсем линейна. 127 из 255 кажется ярче, чем «ровно половина». Это нормально, так устроено зрение.

Ваш ответ

Войдите, чтобы ответить на вопрос.