Широчинно-импулсната модулация (ШИМ) е сложен термин за вид цифров сигнал. ШИМ се използват в различни приложения, включително сложни управляващи схеми. Често срещан начин, по който ги използваме в SparkFun, е за затъмняване на RGB LED или за управление на посоката на сервомотор. Можем да постигнем редица резултати и в двете приложения, защото ШИМ ни позволява да променяме времето, през което сигналът е висок по аналогов начин. Докато сигналът може да бъде само висок (обикновено 5V) или нисък (земя) във всеки даден момент, можем да променяме пропорцията от времето, през което сигналът е висок в сравнение с нисък, за постоянен интервал от време.
Когато един сигнал е висок, го наричаме „включен навреме“. За да опишем количеството „включено навреме“, използваме концепцията за работен цикъл. Коефициентът на запълване се измерва в проценти. Процентът на запълване описва конкретно процента от времето, през което цифровият сигнал е включен в рамките на интервал или период. Периодът е обратна стойност на честотата на формата на вълната. Ако цифровият сигнал е включен половината от времето и е изключен другата половина, казваме, че цифровият сигнал има работен цикъл от 50%, подобно на идеална правоъгълна вълна. Ако процентът е по-висок от 50%, цифровият сигнал прекарва повече време във високо състояние, отколкото в ниско състояние, и обратно, ако работен цикъл е по-малък от 50%. Следната диаграма илюстрира тези три случая:

100% работен цикъл е същият като задаване на напрежението на 5 волта (високо). 0% работен цикъл е същият като свързване на сигнала към земя.
пример
Можете да контролирате яркостта на светодиода, като регулирате работния цикъл.

С RGB (червени, зелени и сини) светодиоди можете да контролирате количеството на всеки от трите цвята, смесени в тях, като ги затъмнявате с различни количества.

Ако и трите са включени в равни количества, резултатът ще бъде различни нюанси на бялата светлина. Същото смесване на синьо и зелено ще създаде синкавозелен цвят. За малко по-сложен пример, опитайте да включите червеното напълно, зеленото напълно при 50% работен цикъл и синьото напълно изключено, за да създадете оранжев цвят.

Когато управлявате светодиоди, честотата на правоъгълната вълна трябва да е достатъчно висока, за да се постигне подходящ ефект на затъмняване. Вълна с 20% работен цикъл при 1 Hz ясно ще покаже на окото ви, че се включва и изключва, докато 100% работен цикъл при 20 Hz или по-висок ще изглежда по-слаб, отколкото когато е напълно включен. По същество, ако целта ви е да постигнете ефект на затъмняване със светодиоди, периодът не може да бъде твърде голям. Можете също да използвате импулсно-широчинна модулация, за да контролирате ъгъла на серво мотор, свързан към механично устройство като роботизирана ръка. Серво моторът има вал, който се завърта в определена позиция въз основа на неговата управляваща линия. Нашите серво мотори имат обхват от приблизително 180 градуса.
Честотата/периодът е специфичен за управлението на конкретен сервомотор. Типичният сервомотор очаква актуализация на всеки 20 ms, с импулс между 1 ms и 2 ms – с други думи, работен цикъл между 5% и 10% при форма на вълната от 50 Hz. При импулс от 1,5 ms сервомоторът ще бъде в естествената си позиция от 90 градуса. При импулс от 1 ms сервото ще бъде на 0 градуса, а при импулс от 2 ms сервото ще бъде на 180 градуса. Можете да получите пълния обхват на движение, като актуализирате сервото до стойности между тях.
Широчинно-импулсната модулация се използва в различни приложения, особено в управлението. След като вече знаете, че може да се използва за димиране на светодиоди и контрол на ъгъла на серво мотори, можете да започнете да проучвате други възможни приложения. Ако се чувствате объркани, не се колебайте да разгледате SparkFun Inventor's Kit, който включва примери, използващи широко-импулсна модулация. Ако сте готови да започнете да програмирате веднага и имате Arduino, разгледайте примерите за PWM кодиране тук.
Време на публикуване: 31 юли 2025 г.


