Главная » Статьи » Прочее

Широтно - импульсная модуляция

В основном, микроконтроллеры не могут выдавать на выходе произвольные напряжения. В Arduino в основном используется напряжение питания 5В и 0В (земля). 

Но как быть, если нам нужно, чтобы светодиод горел в пол силы, или двигатель крутился с небольшими оборотами? Вот тут на помощь приходит Широтно-импульсная модуляция (ШИМ).

 

Широтно-импульсная модуляция применяется в цифровых устройствах, для получения изменяющегося аналогового значения. Мы на выходе получаем прямоугольные импульсы, которые постоянно переключается между максимальным и минимальным значениями. 

Выход микроконтроллера переключается между землёй и максимальным напряжением питания (5В) тысячи раз в секунду (т.е с частотой в тысячи герц (Гц)). Глаз не замечает мерцания более 50 Гц, поэтому мы не видим как мерцает светодиод, а видим только то, что он горит вполсилы. 

 

Длительность включения максимального значения называется шириной импульса (длительностью). Для получения различных аналоговых величин изменяется ширина импульса. При достаточно быстрой смене периодов включения-выключения можно подавать постоянный сигнал между 0 и 5 В на светодиод, тем самым управляя яркостью его свечения.

 

 
На графике зеленые линии отмечают постоянные временные периоды. Длительность периода обратно пропорциональна частоте ШИМ. Т.е. если частота ШИМ составляет 500 Гц, то зеленые линии будут отмечать интервалы длительностью в 2 миллисекунды каждый. Вызов функции analogWrite() с масштабом 0 – 255 означает, что значение analogWrite(255) будет соответствовать 100% рабочему циклу (постоянное включение 5 В), а значение analogWrite(127) – 50% рабочему циклу. 

 

Надеюсь тема была вам полезной и вы узнали для себя что-нибудь новое. Все интересующие вас вопросы вы можете оставить либо в комментариях, либо на форуме

 


←Предыдущая тема | Следующая тема→


 

Категория: Прочее | Добавил: GM (12.10.2015)
Просмотров: 917 | Теги: статьи, PWM, Arduino | Рейтинг: 5.0/3
Всего комментариев: 0
avatar