Схема генератора сигналов ШИМ Arduino

Попробуйте наш инструмент устранения неполадок





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

КАнкит Неги



ЧТО ТАКОЕ ШИМ?

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

И частота играет очень важную роль в ШИМ, которая должна быть достаточно высокой, чтобы генерировать стабильный выходной сигнал.



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

ШИМ ИСПОЛЬЗОВАНИЕ ARDUINO UNO

Pwm также является одним из факторов, которые делают arduino простейшей платой для разработки, поскольку pwm можно сделать, добавив в вашу программу всего одну строку кода. Обратите внимание, что на Arduino UNO есть отдельные цифровые выводы для pwm, что означает, что эти выводы могут давать вывод pwm.

Всего на Arduino UNO доступно 6 контактов pwm, которые являются 3, 5, 6, 9, 10 и 11 из 14 цифровых контактов. Обратите внимание, что количество контактов pwm варьируется от одного типа платы Arduino к другому.

Теперь есть два способа выполнения pwm с помощью arduino:

1. Путем прямого присвоения аналогового значения выводу ШИМ от 0 до 255.

Поскольку цифровые выводы в Arduino могут обеспечивать максимум 5 В, это означает, что аналоговое значение 0 равно 0 вольт, а 255 эквивалентно 5 вольт.

И для этого вам нужно просто добавить этот код в свою программу:

analogWrite (№ вывода ШИМ, значение от 0 до 255)

Например: analogWrite (10,64) // записываем 64 аналоговых значения на вывод ШИМ № 10.

Теперь это означает :: (5/255) * 64 В = 1,25 В, т.е. 25% рабочего цикла.

2. Назначив значение в соответствии с входом, полученным от аналоговых выводов Arduino.
Вход может быть получен от таких компонентов, как ИК-датчик или потенциометр.

Обратите внимание, что Arduino получает аналоговый вход со значением от 0 до 1023, что эквивалентно от 0 до 5 вольт. Таким образом, чтобы выполнить ШИМ на контакте, вы должны преобразовать это входное значение в эквивалентное число от 0 до 255, и это называется сопоставлением на языке Arduino.

Для этого есть простой код:

y = map (x, 0,1023: 0,255) // где x - входная переменная

После этого вы можете выполнить ШИМ на контакте, используя:

analogWrite (PWM pin no, y) // записываем полученное сопоставленное значение на контакт 10

ПРИМЕР ШИМ:

Мы собираемся изучить обе техники на этом примере. Для этого вам понадобится:

1. Потенциометр
2. Два светодиода
3. Два резистора на 100 Ом.

Выполните соединения, как показано на принципиальной схеме:

ПРИНЦИПИАЛЬНАЯ ЭЛЕКТРИЧЕСКАЯ СХЕМА:

КОД:

int x// initialise variables
int y
void setup() {
pinMode(10,OUTPUT)//initialise pin 10 as output
pinMode(9,OUTPUT)//initialise pin 9 as output
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
// put your setup code here, to run once:
}
void loop() {
analogWrite(9,125)// directly assigning value to pin 9 i.e. case1
x=analogRead(A0)// read values from potentiometer in terms of voltage
y= map(x,0,1023,0,255)// map those values from 0 to 255 // put your main code here, to run repeatedly:
analogWrite(10,y)// assigning value based on input from pot at pin A0 i.e. case 2
}

Как это устроено

Основы работы предлагаемого проекта генератора сигналов Arduino PWM можно изучить из следующего абзаца.

Пину № 9 можно присвоить произвольное значение ШИМ, тогда как контакту № 10 дает значение ШИМ в соответствии с положением потенциометра относительно земли. Продолжайте изменять это произвольное значение для контакта 9, а также вращайте потенциометр, чтобы увидеть разный выходной сигнал ШИМ на обоих контактах.




Предыдущая: Схема управления сильноточным двигателем с использованием Arduino Далее: 10-канальный пульт дистанционного управления 2,4 ГГц