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

Как мы уже узнали, мир вокруг аналоговый, то есть окружающие нас процессы изменяются плавно и непрерывно, а микроконтроллеры— цифровые. Оперируют только с логическим нулем и логической единицей, включено и выключено. Но что, если мы хотим плавно изменять яркость светодиода, подключенного к микроконтроллеру?

Одним из способов добиться аналоговых сигналов от цифровых устройств является использование широтно- импульсной модуляции, сокращенно ШИМ (англ. Pulse Width Modulation- PWM). Чтобы понять что это такое, представим, что у нас есть лодка с электрическим мотором, скорость которого не регулируется. Он либо включен на полную мощность, либо выключен. Но нам необходимо обеспечить плавную регулировку скорости лодки. Как это сделать?

Мы можем включить двигатель, и тогда лодка постепенно наберет максимальную скорость, или выключить двигатель, и тогда лодка так же постепенно остановится. Но для нормального управления нам надо научиться регулировать скорость плавно. Что если мы станем периодически включать и выключать двигатель с некоторой частотой, допустим, 1 раз в секунду. Тогда за счет инерционности лодки, ее ход станет плавным, будет обеспечена плавность движения. Для увеличения скорости движения лодки будем включать двигатель на более длительное время и, меньшее время двигатель будет выключен. А для уменьшения скорости лодки будем больше времени плыть по инерции с выключенным двигателем и включать его лишь на короткое время.

Таким же образом можно управлять реальным электромотором, светодиодом или другим исполнительным устройством.

График сигнала с широтно- импульсной модуляцией

На графиках выше изображено 3 сигнала с разным коэффициентом заполнения. По вертикальной оси отвечаем напряжение сигнала в вольтах, а по горизонтальной время в секундах. Сразу видно, что меняется время высокого уровня напряжения и низкого. На первом графике лишь 15% времени сигнал на уровне 3,3 вольта. На втором графике— половину времени, а на третьем— почти все время, 85%. Это и описывает коэффициент заполнения— сколько процентов от всего времени периода занимает сигнал высокого уровня. Логично предположить, что при Кзаполнения = 100% сигнал постоянно высокий, никаких импульсов нет. А при Кзаполнения = 0% — постоянно низкий.

Также важно отметить, что период, то есть время, через которое периодический сигнал повторяется, не меняется. например, это всегда 100 импульсов в секунду. Коэффициент заполнения импульсов меняется, а их частота нет.

Очевидно, что чем больше Кзаполнения, тем больше энергии передается. Также в литературе часто встречается термин скважность— это величина обратная коэффициенту заполнения.