Широтно-импульсная модуляция (ШИМ) | Класс робототехники
Как нам уже известно из первых уроков, любой микроконтроллер умеет хорошо работать с цифровыми сигналами. Он легко справляется с арифметическими операциями над цифровыми данными, принимает и передаёт цифровые сигналы по линиям связи. А что значит «цифровые» в данном случае?
В самом первом уроке мы зажигали и гасили светодиод с помощью Ардуино. Для того, чтобы зажечь светодиод, мы подавали на его анод высокий уровень сигнала. А чтобы погасить — низкий уровень. Получается, для управления мы использовали только два уровня напряжения: высокий и низкий. Светодиод либо будет гореть, либо не будет. Третьего — не дано. Оперируя только двумя состояниями означает, что мы работаем с цифровым сигналом.
Но что делать, если нам нужно зажечь этот самый светодиод только на половину яркости? Или запустить двигатель, на 30% его мощности? Для решения этой задачи используют подход, называемый широтно-импульсной модуляцией сигнала.
Широтно-импульсная модуляция — ШИМ
Разберем понятие ШИМ на примере управления скоростью вращения двигателя постоянного тока. Поставим своей целью запустить мотор на 50% от его максимальной скорости. Пусть наш двигатель идеальный и чтобы достичь заданной скорости, нам нужно в единицу времени передавать на мотор в два раза меньше мощности. Как это сделать, не меняя источник питания?
Проведем мысленный эксперимент (а кто-то может и натуральный — ничего сложного). Возьмём мотор постоянного тока с массивным маховиком, закрепленным на валу (таким маховиком может служить колесо). Подадим питание от аккумулятора и мотор начнет набирать обороты. Через какое-то время, мотор достигнет номинальной мощности, а его ротор максимальной скорости вращения. Отключим питание, и мотор постепенно начнет замедляться вплоть до полной остановки.
Следующий опыт. Снова включим мотор, и когда его скорость достигнет половины от максимальной — выключим. Заметив, что скорость падает — снова включим. И так далее. Включая и выключая питание мотора, мы заставим ротор вращаться со скоростью, близкой к половине от максимальной!
Разумеется, в силу человеческой медлительности, мотор будет удерживать заданную скорость с некоторой погрешностью. Другими словами, скорость будет «плавать» вокруг заданного значения. Чтобы минимизировать эти отклонения, нам потребуется увеличить частоту переключений. Тут уже не обойтись без автоматики.
А как заставить мотор вращаться медленнее или быстрее? Количество переданной мотору энергии будет зависеть от отношения времени когда мотор включен — tвкл к времени когда он выключен — tвыкл.
Так, для передачи мотору 50% мощности, tвкл будет равно tвыкл. Такой случай как раз изображен на графике. Чтобы мотор вращался еще медленнее, скажем с мощностью 25% от номинальной, придется время включения мотора уменьшить до этих самых 25% от общего периода управления
Таким образом, имея возможность менять ширину импульсов, мы можем достаточно точно управлять скоростью вращения мотора.
Собственно, рассмотренный способ управления мощностью и называется широтно-импульсной модуляцией сигнала, а сокращённо — ШИМ. Теперь рассмотрим параметры которые характеризуют ШИМ сигнал и которые следует учитывать при написании программ для микроконтроллеров.
Коэффициент заполнения (duty cycle)
Начнем с самого главного параметра — коэффициента заполнения D (он же duty cycle). Этот коэффициент равен отношению периода ШИМ сигнала к ширине импульса:
D = T / tвкл
Пример ШИМ сигнала для разных значений D:
Чем больше D, тем больше мощности мы передаем управляемому устройству, например, двигателю. Так, при D = 1 двигатель работает на 100% мощности, при D = 0,5 — наполовину мощности, при D = 0 — двигатель полностью отключен.
Кстати, кроме коэффициента заполнения для характеризации ШИМ применяют и другой параметр — скважность S.
S = 1/T
Скважность, как и коэффициент заполнения — величина безразмерная. В отличие от D, она может принимать значения от 1 до бесконечности. Но чаще всего, особенно в англоязычных источниках, используют именно D.
Частота ШИМ
Частота ШИМ определяет период импульса — T (см картинку выше). Требования к этой частоте диктуются несколькими факторами, в зависимости от типа управляемого устройства.
В случае управления светодиодами одним из главных факторов становится видимость мерцания. Чем выше частота, тем менее заметно мерцание излучаемого света. Высокая частота также помогает снизить влияние температурных скачков, которые светодиоды не любят. На практике для светодиодов достаточно иметь частоту ШИМ в пределах 100-300 Гц.
С моторами постоянного тока дела обстоят немного иначе. С одной стороны, чем больше частота, тем более плавно и менее шумно работает мотор. С другой — на высоких частотах падает крутящий момент. Нужен баланс. Более подробно о моторах мы поговорим в одной из будущих статей, а пока рекомендуем для большинства DIY задач использовать частоту ШИМ 2кГц.
Плюс, общая проблема для всех случаев управления силовой нагрузкой — потери в цепях силовой коммутации (в транзисторах, и не только), которые увеличиваются с ростом частоты ШИМ. Чем больше частота, тем большее время транзисторы находятся в переходных состояниях, активно выделяя тепло и снижая эффективность системы.
Разрешение ШИМ
Ещё один важный параметр — разрешение ШИМ сигнала. Этот параметр показывает, с какой точностью мы можем менять коэффициент заполнения. Чем больше разрешение, тем плавнее будет меняться мощность на управляемом устройстве.
Например, у платы Ардуино с базовыми настройками, разрешение ШИМ — 256. То есть мы можем изменять сигнал от 0 до 255 — не густо, но для большинства DIY задач хватает.
ШИМ и микроконтроллеры
Простейший генератор ШИМ можно собрать и без всяких микроконтроллеров, только лишь с микросхемой таймера 555.
Например, у платы Ардуино имеется 6 контактов: 3, 5, 6, 9, 10 и 11, которые можно настроить для генерации аппаратного ШИМ. По-умолчанию, на контактах 5 и 6 частота сигнала будет 1кГц, на остальных — скромные 500Гц. Как ими пользоваться ШИМ на Ардуино подробно рассказывается на уроке «Ардуино: ШИМ» (скоро будет).
STM32F103 — гораздо более серьёзный микроконтроллер. У него целых 20 контактов имеют возможность генерации ШИМ. Частота этого микроконтроллера — 72МГц, что делает возможным плавное и точное управление моторами постоянного тока, не говоря уже о светодиодах. Узнаём подробности в уроке про STM32 и ШИМ.
Кстати, микроконтроллеры умеют не только генерировать ШИМ, но и детектировать подобные сигналы. Про это можно почитать в соответствующей статье на нашем портале (скоро будет).
Вконтакте
Анализ сигналов широтно-импульсной модуляции | Rohde & Schwarz
Решение компании Rohde & Schwarz
Быстрый и простой способ получить общую картину ШИМ-сигнала — использовать функцию послесвечения осциллографа.
Тем не менее, послесвечение и цветовая градация не обеспечивают детального анализа. Модулируется ли помимо длительности период? С какой частотой повторяется цикл модуляции? Сколько длительностей каждого значения встречается? Эти сведения необходимы при разработке различных электронных модулей, таких, например, как понижающие преобразователи, которые используются в источниках питания, схемах питания процессоров или зарядных устройствах.
Чтобы получить эту информацию, необходимо использовать методы более глубокого анализа.

Блок матопераций содержит следующие стандартные функции анализа трека:
- Трек: период (одно- и биполярный)
- Трек: частота (одно- и биполярный)
- Трек: длительность импульса (одно- и биполярный)
- Трек: коэффициент заполнения (одно- и биполярный)
Что такое PWM (ШИМ)? | dsp
Аббревиатурой PWM в английской документации обозначают ШИМ (широтно-импульсная модуляция). PWM (Pulse-Width Modulation) или PDM (Pulse-Duration Modulation) это метод уменьшения средней мощности электрического сигнала путем разделения его на дискретные части (отдельные порции). Среднее значение напряжения (и тока), поступающего в нагрузку, управляется открытием и закрытием электронного ключа на высокой частоте. Чем дольше время, когда ключ открыт в сравнении с временем, когда закрыт, тем больше мощность передается в нагрузку. Вместе с MPPT (maximum power point tracking), это один из основных методов уменьшения выхода энергии с солнечных панелей, чтобы не перегружать заряжаемые батареи [2]. PWM хорошо подходит для управления инерционными нагрузками, такими как моторы или нагреватели. Частота переключения PWM выбирается достаточно большой, чтобы не влиять на нагрузку, т. е. результирующая форма сигнала, воспринимаемая нагрузкой (и изменение мощности), должна получиться как можно более гладкой.
На рисунке ниже показан пример ШИМ на идеальной индуктивности, управляемый импульсами напряжения (синий сигнал), в результате чего получается похожий на синусоиду ток (показан красным). Форма синусоиды далека от идеальной, однако может быть значительно улучшена с повышением частоты импульсов. Обратите внимание, что форма тока это по сути интеграл от формы импульсов напряжения.
Скорость переключения (или частота) может значительно меняться в зависимости от нагрузки и от области применения. Например, в электрической печи можно включать и выключать нагревательный элемент несколько раз в минуту. Частота переключения 120 Гц можно использовать в диммере лампы. Для управления быстрым сервоприводом можно использовать частоты от нескольких килогерц (кГц) или десятков килогерц. В усилителях звука ит блоках питания компьютеров применяют частоты переключения от 44 кГц и выше. Основное достоинство регулирования по принципу PWM в том, что потери мощности на переключение в электронных ключах оказываются намного меньше, чем выходная мощность, передаваемая в нагрузку, и КПД системы регулирования получается очень высокой. PWM также хорошо работает в системах цифрового управления, потому соотношение включено/выключено (скважность периода импульсов) хорошо согласуется с числами, применяемые в цифровых системах. PWM также используется в некоторых системах коммуникаций, где скважность сигнала используется для переноса информации по каналу связи.
Многие современные микроконтроллеры (MCU) содержат в себе встроенные аппаратные PWM-контроллеры, выходы которых могут быть соединены с внешними выводами корпуса MCU. Это широко используется для управления моторами постоянного тока в системах управления роботами и других приложениях. Кроме того, PWM может быть реализована программно, путем прямого управления логическим уровнем ножки порта MCU.
Скважность (duty cycle). Термин скважность обозначает пропорцию времени включения и общим периодом времени включено/выключено. Малое значение скважности соответствует малая выходная мощность, потому что на интервале цикла PWM интервал состояния выключено занимает больше времени, чем включено. Скважность часто выражают в процентах, где 100% означает максимальную выходную мощность, когда ключ постоянно замкнут. Когда у цифрового сигнала половина времени периода лог. {T}y_{\text{min}}\,dt\right)\\&={\frac {1}{T}}\left(D\cdot T\cdot y_{\text{max}}+T\left(1-D\right)y_{\text{min}}\right)\\&=D\cdot y_{\text{max}}+\left(1-D\right)y_{\text{min}}\end{aligned}}}
Это последнее выражение может быть справедливо упрощено во многих случаях, где ymin = 0, как {\displaystyle {\bar {y}}=D\cdot y_{\text{max}}} . Получается, что среднее значение сигнала напрямую зависит от скважности D.
Самый простой метод генерации ШИМ из аналоговой величины — использование компаратора для сравнения этой величины с пилообразным сигналом. На рис. 2 приведен пример преобразования аналогового синусоидального сигнала в сигнал ШИМ. Когда уровень синусоидального сигнала (показан на рисунке красным цветом) больше, чем уровень модулирующего сигнала пилы (показана синим цветом), сигнал ШИМ (показан розовым цветом) переходит в высокий уровень, иначе переходит в низкий уровень.
Рис. 2. Простой метод формирования ШИМ с помощью генератора пилы и компаратора.
Дельта-модуляция (delta-PWM, Δ-PWM). При использовании дельта-модуляции для управления ШИМ выходной сигнал проинтегрирован, и результат интегрирования сравнивается с пределами, которые соответствуют исходному сигналу, смещенному на константу [3]. Всякий раз, когда интеграл выходного сигнала достигает одного из пределов, сигнал ШИМ меняет свое состояние, см. рис. 3.
Выходной сигнал (показан синим) сравнивается с пределами (показаны зеленым). Эти пределы соответствуют исходному сигналу (показан красным), который модулируется, относительно него установлены верхний и нижний пределы, смещенные на заданную величину. Каждый раз, когда выходной сигнал (синий) достигает пределов, сигнал ШИМ меняет свое состояние.
Рис. 3. Принцип работы Δ-PWM.
Дельта-сигма модуляция (delta-sigma, ΔΣ-PWM). В дельта-сигма модуляции выходной сигнал вычитается из исходного сигнала для формирования сигнала ошибки [4]. Эта ошибка интегрируется, и когда интеграл ошибки выходи за пределы, выходной сигнал ШИМ меняет свое состояние, см. рис. 4.
Исходный сигнал (показан зеленым) вычитается из выходного сигнала ШИМ (показан синим внизу) для формирования сигнала ошибки (показан синим вверху). Эта ошибка интегрируется, и результат интегрирования (розовый сигнал посередине) сравнивается с пределами. Когда интеграл ошибки выходит за пределы, выходной сигнал ШИМ меняет свое состояние.
Рис. 4. Принцип работы ΔΣ-PWM.
Пространственно-векторная модуляция. Этот алгоритм ШИМ применяется для генерации многофазного переменного тока. Здесь исходный сигнал оцифровывается с заданной периодичностью. На каждой выборке сигнала выбирают ненулевые активные переключающие векторы, смежные с исходным вектором, и один или более нулевых переключающих векторов для соответствующей доли периода дискретизации, чтобы синтезировать исходный сигнал как среднее из используемых векторов [5].
Прямое управление крутящим моментом (direct torque control, DTC). DTC используется для управления моторами переменного тока [6]. Этот метод ШИМ тесно связан с дельта-модуляцией (см. выше). Крутящий момент мотора и магнитный поток оцениваются и управляются таким образом, чтобы они оставались в заданных пределах гистерезиса, путем включения новой комбинации полупроводниковых ключей каждый раз, когда любой сигнал пытается отклониться от своего допустимого уровня.
ШИМ с распределением времени. Множество цифровых схем могут генерировать сигналы ШИМ (например, большинство микроконтроллеров имеют аппаратные блоки ШИМ, которые могут выводить сигнал ШИМ на свои выводы). Обычно в таких схемах используется счетчик, который инкрементируется в равные промежутки времени (такты для инкремента счетчика обычно вырабатываются из тактовой частоты микроконтроллера), и сбрасывается по окончании каждого периода ШИМ. Когда значение счетчика становится больше определенного значения, выход ШИМ меняет свое состояние с лог. 1 на лог. 0 (или с лог. 0 на лог. 1). По окончании периода ШИМ выход возвращается в исходное состояние — обратно в лог. 1 (или в лог. 0). Эта технику иногда называют ШИМ с распределением времени.
Повторяющиеся интервалы инкремента счетчика и его сброса составляют цифровую версию генерации пилообразного сигнала. Схема сравнения значения счетчика а заданной величиной становится цифровой версией аналогового компаратора. Скважность ШИМ в цифровой версии может меняться дискретными шагами, определяемыми разрядностью счетчика. Однако счетчик с большой разрядностью может обеспечить достаточно высокую точность ШИМ.
[Типы ШИМ и спектр]
Бывает 2 типа метода реализации периодического ШИМ:
1. Обычный ШИМ. Передний срез сигнала ШИМ может удерживаться в начале окна времени периода, а задний срез может модулироваться по длительности для изменения скважности.
2. Симметричный ШИМ. Середина импульса может быть фиксирована в окне времени периода, при этом оба перепада уровня ШИМ смещаются влево и вправо относительно этой середины для уменьшения и увеличения скважности. Такой метод дает более чистый спектр на выходе при синтезе аналоговых сигналов, однако он немного сложнее в реализации, и требует специальной аппаратуры (во многих микроконтроллерах симметричный ШИМ поддерживается).
Спектр на выходе ШИМ методов 1 и 2 примерно одинаковый, и содержит постоянную составляющую, модулируемый сигнал и фазо-модулированные несущие на каждой гармонике частоты импульсов ШИМ. Амплитуды групп гармоник ограничиваются огибающей функции синуса, и простираются до бесконечности. Бесконечная полоса вызвана нелинейной работой модулятора ШИМ. Из-за этого цифровой ШИМ страдает от искажений наложения спектра (алиасинга), что значительно снижает применимость ШИМ в современных системах связи. Ограничением полосы пропускания ядра ШИМ эффектов алиасинга можно избежать.
Дельта-модуляция, в отличие от периодического ШИМ, является псевдослучайным процессом, который производит непрерывный спектр без различаемых гармоник.
[Теорема дискретизации ШИМ]
Процесс формирования сигнала с помощью ШИМ нелинейный, и обычно предполагается, что восстановление аналогового сигнала с помощью ФНЧ получается не идеальным. Теорема [7] ШИМ-дискретизации показывает, что ШИМ-преобразование может быть совершенным. Теорема утверждает, что «Любой сигнал полосы частот в пределах ± 0,637 может быть представлен формой сигнала широтно-импульсной модуляции (ШИМ) с единичной амплитудой. Число импульсов в форме сигнала равно числу выборок Найквиста, и ограничение пика не зависит от того, является ли форма сигнала двухуровневой или трехуровневой».
Теорема дисретизации Найквиста-Шеннона гласит [8]: «Если есть сигнал, ограниченный по спектру частотой f0, то можно собрать и сохранить всю информацию в этом сигнале, если оцифровать его с частотой дискретизации больше 2f0».
[Ссылки]
1. Pulse-width modulation site:wikipedia.org.
2. What is Maximum Power Point Tracking (MPPT) site:solar-electric.com.
3. Delta modulation site:wikipedia.org.
4. Дельта-сигма модуляция.
5. Space vector modulation site:wikipedia. org.
6. Direct torque control site:wikipedia.org.
7. «The sampling theorem with constant amplitude variable width pulses» J. Huang, K. Padmanabhan, and O. M. Collins.
8. Sampling: What Nyquist Didn’t Say, and What to Do About It site:wescottdesign.com.
9. XPS Delta-Sigma ЦАП.
Raspberry Pi. PWM. Генерация ШИМ-сигнала.
Рассмотрев работу с портами ввода-вывода GPIO в качестве обычных входов и выходов, нельзя не затронуть и вопрос использования Raspberry Pi для генерации ШИМ (PWM).
ШИМ-сигналы могут использоваться, к примеру, для управления серво-приводами или двигателями постоянного тока, либо для контроля яркости светодиодов. И это только несколько самых основных, сразу возникающих в памяти, применений. Таким образом, необходимость в генерации ШИМ возникает довольно часто и в самых разных проектах.
Итак, ШИМ-сигнал представляет из себя последовательность импульсов с постоянной частотой следования, но разной длительностью. Давайте рассмотрим наглядный пример:
Поскольку частота импульсов постоянна, то значит и период имеет фиксированную величину. А вот длительность импульса может меняться, собственно так и происходит модуляция. Рассмотрим два разных сигнала, использующихся для включения/отключения светодиодов:
Пусть светодиоды загораются при высоком уровне сигнала. Период в обоих случаях идентичен, а вот длительность импульсов второго сигнала больше в 2 раза. Соответственно, светодиод во втором случае будет гореть ярче, чем в первом.
Строго говоря, светодиод будет мигать, то есть часть периода гореть, а часть периода — нет. Но при высокой частоте следования импульсов глазу будут не заметны эти мигания, поэтому на практике получим 2 светодиода с разной яркостью. То есть, чем большую часть периода диод горит — тем ярче будет в результате светить.
ШИМ-сигналы характеризуют параметром, который называется — коэффициент заполнения (duty cycle). Он вычисляется по формуле:
D = \frac{\tau}{T}\medspace * \medspace 100\%
Здесь \tau — длительность импульса, а T — период сигнала.
Вернемся к рассмотренным выше сигналам — для первого случая длительность импульса составляет \frac{4}{10} периода сигнала, а значит D = 40\%. Аналогично, для второго случая D = 80\%.
На этом заканчиваем лирическое отступление на тему ШИМ и переходим к практической реализации на Raspberry Pi.
Вспоминаем таблицу распределения функций портов GPIO. Я сейчас пользуюсь Raspberry Pi 4, для любой другой модификации можно найти аналогичную информацию в даташите. Итак, для генерации ШИМ могут использоваться следующие выводы:
Задействуем два порта в нашем примере — GPIO12 и GPIO13. При этом пусть коэффициент заполнения будет одинаковым, а частота второго сигнала (GPIO13) — в 2 раза больше.
Для работы с PWM на Python используем все тот же модуль RPi.GPIO, установить который в случае отсутствия можно командой:
sudo apt-get install python-rpi.gpio
Создаем файл pwm_test.py:
import RPi.GPIO as GPIO import time GPIO_PWM_0 = 12 GPIO_PWM_1 = 13 WORK_TIME = 10 DUTY_CYCLE = 50 FREQUENCY = 100 GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_PWM_0, GPIO.OUT) GPIO.setup(GPIO_PWM_1, GPIO.OUT) pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY) pwmOutput_1 = GPIO.PWM(GPIO_PWM_1, 2 * FREQUENCY) pwmOutput_0.start(DUTY_CYCLE) pwmOutput_1.start(DUTY_CYCLE) time.sleep(WORK_TIME) pwmOutput_0.stop() pwmOutput_1.stop() GPIO.cleanup()
Разбираем написанное. Первым делом подключаем модули и объявляем переменные:
import RPi.GPIO as GPIO import time GPIO_PWM_0 = 12 GPIO_PWM_1 = 13 WORK_TIME = 10 DUTY_CYCLE = 50 FREQUENCY = 100
- GPIO_PWM_0 и GPIO_PWM_1 — номера выводов GPIO, которые мы используем для генерации ШИМ
- WORK_TIME — время выполнения программы. В этом примере не будем анализировать действия пользователя для определения момента выхода из программы. Просто включаем ШИМ и по истечении времени WORK_TIME (10 секунд) заканчиваем работу.
- DUTY_CYCLE — коэффициент заполнения, одинаковый для обоих каналов и составляющий 50%.
- FREQUENCY — частота сигнала (100 Гц) первого канала. На втором установим в 2 раза больше, как и планировали.
Далее настроим режим нумерации портов, чтобы номера соответствовали названию сигнала (например, GPIO12, GPIO13), а не порядковому номеру на разъеме, а также настроим нужные нам порты:
GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_PWM_0, GPIO.OUT) GPIO.setup(GPIO_PWM_1, GPIO.OUT)
Создаем объекты pwmOutput_0 и pwmOutput_1 для работы с каналами PWM. В качестве аргументов указываем последовательно — номер порта GPIO и частоту следования импульсов:
pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY) pwmOutput_1 = GPIO.PWM(GPIO_PWM_1, 2 * FREQUENCY)
Запускаем генерацию функцией start() — аргументом является требуемая величина коэффициента заполнения (duty cycle):
pwmOutput_0.start(DUTY_CYCLE) pwmOutput_1.start(DUTY_CYCLE)
Ожидаем 10 секунд и останавливаем процесс:
time.sleep(WORK_TIME) pwmOutput_0.stop() pwmOutput_1.stop() GPIO.cleanup()
На этом базовый пример закончен, запускаем его на выполнение:
python pwm_test.py
В результате получаем сигналы ШИМ:
Коэффициент заполнения одинаковый (50% — длительность импульса равна половине периода), а частота во втором случае в 2 раза выше, собственно, как и должно быть 🙂
Давайте реализуем еще один небольшой пример — будем менять коэффициент заполнения, а, соответственно, и длительность импульса в цикле программы. При этом период импульсов будет оставаться постоянным. Создаем файл pwm_test_dynamic.py и пишем код:
import RPi.GPIO as GPIO import time GPIO_PWM_0 = 12 FREQUENCY = 100 DELAY_TIME = 0.02 GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_PWM_0, GPIO.OUT) pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY) pwmOutput_0.start(0) try: while True: for dutyCycle in range(0, 101, 1): pwmOutput_0.ChangeDutyCycle(dutyCycle) sleep(DELAY_TIME) except KeyboardInterrupt: pwmOutput_0.stop() GPIO.cleanup() print('exiting')
Аналогичным образом настраиваем GPIO12 и запускаем PWM с коэффициентом заполнения 0 и частотой 100 Гц:
GPIO_PWM_0 = 12 FREQUENCY = 100 DELAY_TIME = 0.02 GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_PWM_0, GPIO.OUT) pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY) pwmOutput_0.start(0)
В основном цикле программы while True каждые 0.02 с (DELAY_TIME) изменяем duty cycle в диапазоне от 0 до 100:
while True: for dutyCycle in range(0, 101, 1): pwmOutput_0.ChangeDutyCycle(dutyCycle) sleep(DELAY_TIME)
При нажатии пользователем Ctrl + C завершаем выполнение программы:
pwmOutput_0.stop() GPIO.cleanup() print('exiting')
Запускаем:
python pwm_test_dynamic.py
И получаем:
Генерация работает как положено, так что на этом заканчиваем разбор ШИМ для Raspberry Pi на сегодня, до новых статей!
DAP-04-S01 MEANWELL ДАЛИ сигнал ШИМ Преобразователь сигнал..
Конвертер протокола DALI и сигнал от кнопки к 1-10V.
Для регулирования драйверы MEAN WELL.
Формат, в пластиковой коробке.
Универсальный диапазон входного90-305Vca. 47-63Hz.
Входные сигналы:DALIиликнопка.
Выходной сигнал:10V PWM(настраивается, как и 1 или 4 выхода ШИМ)
Настраивается с помощью перемычек на 1 или 4 адреса DALI.
Кривая регулировки линейная или логарифмическая (IEC62386-207).
Диапазон регулирования 1-100%.
Класс II, без заземления.
Реле контроля ON/OFF для отключения питания переменного тока.
Потребление без нагрузки <0,5 Вт.
Рабочая температура: от -30до+60 ° Cот температуры окружающей среды.
Размеры (длина x Ширина x высота) [мм]:165 x 46 x 23.
3 года гарантии
Производитель: MEAN WELL.
DAP-04-S01-шлюз по протоколу DALI в сигнал 10В в ШИМ (ШИМ). С помощью этого устройства мы можем регулировать с помощью протокола DALI драйверы с диммированием с сигналом PWM от MEAN WELL как серии PWM, HLG-B, ELG-B, ELGT-B, НПФ-Д, LPF-D, HBG-B. .. вот так, даже без драйвера, устанавливаемое непосредственно по протоколу DALI, мы можем интегрировать их в шину, DAP-04-S01.
Данное оборудование также позволяет запись кнопкой, что позволяет нам одинаково регулярно драйверы MEAN WELL регулируемые по сигнала 10V PWM, с помощью простой кнопки. Это во много раз проще и эстетичней использовать регулятор 1-10В. Большинство производителей устройств имеют механизмы кнопки (нормально открытые) во всех его диапазонах и цветов, в то время как диммеры 1-10В, как правило, предложение ограничено. Таким образом, мы можем сохранить эстетику установки. DAP-04-S01 поддерживает ввод нескольких кнопок, используя, кроме того, кабель меньше, чем в традиционных установках за то, что так легко мы можем регулировать драйверы с любым количеством кнопок.
DAP-04-S01 можно настроить с помощью перемычки, как команда и адрес ДАЛИ или по 4 направлениям. Если быть настроен как адрес ДАЛИ, только у нас выход ШИМ в канале 1 и в случае как настроить 4 направлениях мы будем иметь 4 выхода ШИМ независимых в своих 4-канальный выход. Таким образом, если не требуется, мы можем сэкономить количество адресов DALI, используемые.
Кроме того, каждый выход DAP-04-S01 мы можем подключить до 20 драйверы MEAN WELL регулируемые. С тем, что с DAP-04-S01 мы можем контролировать до 80 drivers (20 за каждый канал вывода) с помощью протокола DALI или с помощью кнопки.
Также включает в себя реле 8 а, которую мы можем использовать, чтобы выключить буквально drivers подключены. А те драйверы, которые являются 1-10V и что путем регулирования мы не можем выключить их физически, мы можем использовать реле переменного ТОКА, чтобы выключить их. Это реле связан только в первый адрес ДАЛИ. Хотя реле готов выдерживать пики не рекомендуется подключать более 3-4 drivers уже, что пик пусковой ток драйверов может представлять проблему для реле. Это можно исправить, добавив ограничитель тока ESB выходе из порта или с помощью другого реле мощности внешнего.
DAP-04-S01 является идеальным решением для интеграции драйверов регулируемые системы DALI или regularlos удобно с помощью кнопки.
Что такое ШИМ-сигнал? | Grundfos Россия
Автоматика, управляющая микроклиматом в помещении, – важная часть современного «умного» дома. Интеллектуальные контроллеры регулируют °t воздуха и воды, передавая команды котлам, кондиционерам и другому оборудованию – в том числе, насосам. Например, в GRUNDFOS ALPHA1 L есть встроенная функция управления и диспетчеризации по ШИМ-сигналу. Что он из себя представляет и как работает? Давайте рассмотрим.
ШИМ – это широтно-импульсная модуляция. Контроллер посылает насосу сигнал, состоящий из двух частей: электрического импульса и следующей за ним «паузы». Общее время сигнала T (импульс + пауза) – всегда одинаково, а вот время импульса t внутри него может меняться. Отношение d = t/T задаёт уровень производительности насоса в процентах от максимальной.
Как ALPHA1 L «понимает» сигналы ШИМ:
• d ≤ 10% – насос работает на максимальных оборотах; • 10% < d ≤ 84% – снижает/поднимает обороты до заданной величины; • 84% < d ≤ 91% – работает на минимальных оборотах; • 91% < d ≤ 95% – включиться/выключиться; • 95% < d ≤ 100% – выключен.
Ответным сигналом ALPHA1 L способен передавать данные о своём состоянии: статусе работы и потребляемой мощности.
Преимущества такого способа управления в том, что регулировать производительность насоса можно на величину вплоть до 1% (1/100) от максимальной. Благодаря этому скорость циркуляции теплоносителя в системе меняется плавно, а °t в помещениях регулируется точно и оперативно. Поэтому в доме всегда будет комфортно.
Чаще всего насосы с ШИМ-сигналом применяются для управления:
• °t в контурах рециркуляции систем ГВС;
• скоростью циркуляции в контуре котла;
• °t подачи в контуры тёплого пола.
Купить насосы ALPHA1 L можно у представителей GRUNDFOS в вашем городе (подробнее здесь: http://amp.gs/N8j9) или в официальном интернет-магазине http://amp.gs/sbpD.
Подробнее о насосах ALPHA читайте здесь: https://ru.grundfos.com/heating2019.html
ШИМ контроллер — это… Что такое ШИМ контроллер?
Широтно-импульсная модуляция (ШИМ, англ. Pulse-width modulation (PWM)) — приближение желаемого сигнала (многоуровневого или непрерывного) к действительным бинарным сигналам (с двумя уровнями — вкл/выкл), так, что, в среднем, за некоторый отрезок времени, их значения равны. Формально, это можно записать так:
- ,
где x(t) — желаемый входной сигнал в пределе от t1 до t2, а ∆Ti — продолжительность i -го ШИМ импульса, каждого с амплитудой A. ∆Ti подбирается таким образом, что суммарные площади (энергии) обеих величин приблизительно равны за достаточно продолжительный промежуток времени, равны так же и средние значения величин за период:
- .
Управляемыми «уровнями», как правило, являются параметры питания силовой установки, например, напряжение импульсных преобразователей /регуляторов постоянного напряжения/или скорость электродвигателя. Для импульсных источников x(t) = Uconst стабилизации.
ШИП — широтно-импульсный преобразователь, генерирующий ШИМ-сигнал по заданному значению управляющего напряжения. Основное достоинство ШИМ — высокий КПД его усилителей мощности, который достигается за счёт использования их исключительно в ключевом режиме. Это значительно уменьшает выделение мощности на силовом преобразователе (СП).
Применение
При широтно-импульсной модуляции в качестве несущего колебания используется периодическая последовательность прямоугольных импульсов, а информационным параметром, связанным с дискретным модулирующим сигналом, является длительность этих импульсов. Периодическая последовательность прямоугольных импульсов одинаковой длительности имеет постоянную составляющую, обратно пропорциональную скважности импульсов, то есть прямо пропорциональную их длительности. Пропустив импульсы через ФНЧ с частотой среза, значительно меньшей, чем частота следования импульсов, эту постоянную составляющую можно легко выделить, получив постоянное напряжение. Если длительность импульсов будет различной, ФНЧ выделит медленно меняющееся напряжение, отслеживающее закон изменения длительности импульсов. Таким образом, с помощью ШИМ можно создать несложный ЦАП: значения отсчётов сигнала кодируются длительностью импульсов, а ФНЧ преобразует импульсную последовательность в плавно меняющийся сигнал.
ШИМ использует транзисторы (могут быть и др. элементы) не в активном (правильнее будет сказать — линейном), а в ключевом режиме, то есть транзистор всё время или разомкнут (выключен), или замкнут (находится в состоянии насыщения). В первом случае транзистор имеет бесконечное сопротивление, поэтому ток в цепи не течёт, и, хотя всё напряжение питания падает на транзисторе, то есть КПД=0 %, в абсолютном выражении выделяемая на транзисторе мощность равна нулю. Во втором случае сопротивление транзистора крайне мало, и, следовательно, падение напряжения на нём близко к нулю — выделяемая мощность так же мала.
1.
2.
Принцип работы ШИМ
ШИМ есть импульсный сигнал постоянной частоты и переменной скважности, то есть отношения длительности импульса к периоду его следования. С помощью задания скважности (длительности импульсов) можно менять среднее напряжение на выходе ШИМ.
Генерируется аналоговым компаратором, на отрицательный вход которого подаётся опорный сигнал в виде «пилы» или «треугольника», а на положительный — собственно сам модулируемый непрерывный аналоговый сигнал. Частота импульсов соответствует частоте «зубъев» пилы. Ту часть периода, когда входной сигнал выше опорного, на выходе получается единица, ниже — нуль.
В цифровой технике, выходы которой могут принимать только одно из двух значений, приближение желаемого среднего уровня выхода при помощи ШИМ является совершенно естественным. Схема настолько же проста: пилообразный сигнал генерируется N-битным счётчиком. Цифровые устройства (ЦШИП) работают на фиксированной частоте, обычно намного превышающей реакцию управляемых установок (передискретизация). В периоды между фронтами тактовых импульсов, выход ЦШИП остаётся стабильным, на нём действует либо низкий уровень либо высокий, в зависимости от выхода цифрового компаратора, сравнивающего значение счётчика с уровнем приближаемого цифрового сигнала V(n). Выход за много тактов можно трактовать как череду импульсов с двумя возможными значениями 0 и 1, сменяющими друг-друга каждый такт Т. Частота появления единичных импульсов получается пропорциональной уровню приближаемого сигнала ~V(n). Единицы, следующие одна за другой, формируют контур одного, более широкого импульса. Длителности полученных импульсов переменной ширины ~V(n), кратны периоду тактирования T, а частота равна 1/(T*2N). Низкая частота означает длительные, относительно T, периоды постоянства сигнала одного уровня, что даёт невысокую равномерность распределения импульсов.
Описанная цифровая схема генерации подпадает под определение однобитной (двухуровневой) импульсно-кодовой модуляции (ИКМ). 1-битную ИКМ можно рассматривать в терминах ШИМ как серию импульсов частотой 1/T и шириной 0 либо T. Добиться усреднения за менее короткий промежуток времени позволяет имеющаяся передискретизация. Высоким качеством обладает такая разновидность однобитной ИКМ, как импульсно-плотностная модуляция (pulse density modulation), которая ещё именуется импульсно-частотной модуляцией.
Восстанавливается непрерывный аналоговый сигнал арифметическим усреднением импульсов за много периодов при помощи простейшего фильтра низких частот. Хотя обычно даже этого не требуется, так как электромеханические составляющие привода обладают индуктивностью, а объект управления (ОУ) — инерцией, импульсы с выхода ШИП сглаживаются и ОУ, при достаточной частоте ШИМ-сигнала, ведёт себя как при управлении обычным аналоговым сигналом.
Ссылки
Очень простое и доступное описание принципов работы ШИМ от DI HALT на сайте http://easyelectronics.ru
Программирование аппаратного ШИМ в микроконтроллерах AVR и PIC на языке Си на примерах.
Програмно-аппаратный многоканальный ШИМ в AVR для управления 8 servo рулевыми машинками.
Wikimedia Foundation. 2010.
— learn.sparkfun.com
Что такое широтно-импульсная модуляция?
Широтно-импульсная модуляция (PWM) — это причудливый термин для описания типа цифрового сигнала. Широтно-импульсная модуляция используется во множестве приложений, включая сложные схемы управления. Обычно мы используем их в SparkFun для управления затемнением светодиодов RGB или для управления направлением сервопривода. Мы можем достичь ряда результатов в обоих приложениях, потому что широтно-импульсная модуляция позволяет нам изменять, сколько времени сигнал находится на высоком уровне аналоговым способом.Хотя сигнал может быть только высоким (обычно 5 В) или низким (земля) в любое время, мы можем изменить пропорцию времени, в течение которого сигнал является высоким, по сравнению с тем, когда он низкий в течение согласованного временного интервала.
Роботизированная клешня, управляемая серводвигателем с использованием широтно-импульсной модуляции
Рекомендуемая литература
Некоторые базовые руководства, которые вы могли бы рассмотреть в первую очередь:
Рабочий цикл
Когда сигнал высокий, мы называем это «вовремя». Для описания количества «вовремя» мы используем понятие рабочего цикла. Рабочий цикл измеряется в процентах. Процент рабочего цикла конкретно описывает процент времени, в течение которого цифровой сигнал остается включенным в интервале или периоде времени. Этот период обратно пропорционален частоте сигнала.
Если цифровой сигнал проводит половину времени включенным, а другую половину — выключенным, мы бы сказали, что цифровой сигнал имеет рабочий цикл 50% и напоминает идеальную прямоугольную волну. Если процентное значение выше 50%, цифровой сигнал проводит больше времени в высоком состоянии, чем в низком, и наоборот, если рабочий цикл меньше 50%.Вот график, иллюстрирующий эти три сценария:
Примеры рабочего цикла 50%, 75% и 25%
100% рабочий цикл будет таким же, как установка напряжения на 5 В (высокое). Рабочий цикл 0% будет таким же, как заземление сигнала.
Примеры
Яркость светодиода можно регулировать, регулируя рабочий цикл.
ШИМ используется для управления яркостью светодиода
С помощью светодиода RGB (красный, зеленый, синий) вы можете контролировать, какое количество каждого из трех цветов вы хотите в смешении цветов, уменьшая их яркость с различной степенью.
Основы смешивания цветов
Если все три горят в равной степени, в результате будет белый свет различной яркости. Синий, равно смешанный с зеленым, станет бирюзовым. В качестве чуть более сложного примера попробуйте полностью включить красный, зеленый — 50% рабочего цикла и синий — полностью выключить, чтобы получить оранжевый цвет.
PWM можно использовать для смешивания цветов RGB
Частота прямоугольной волны должна быть достаточно высокой при управлении светодиодами, чтобы получить надлежащий эффект затемнения.Волна 20% рабочего цикла при 1 Гц будет очевидна, что она включается и выключается для ваших глаз, в то время как 20% рабочий цикл при 100 Гц или выше будет выглядеть тусклее, чем полностью включенный. По сути, период не может быть слишком большим, если вы стремитесь к эффекту затемнения с помощью светодиодов.
Вы также можете использовать широтно-импульсную модуляцию для управления углом серводвигателя, прикрепленного к чему-то механическому, например, манипулятору робота. Сервоприводы имеют вал, который поворачивается в определенное положение в зависимости от его линии управления. Наши серводвигатели имеют диапазон около 180 градусов.
Частота / период зависят от управления конкретным сервоприводом. Ожидается, что типичный серводвигатель будет обновляться каждые 20 мс с импульсом от 1 до 2 мс, или, другими словами, от 5 до 10% рабочего цикла на форме волны 50 Гц. С импульсом 1,5 мс серводвигатель будет в естественном положении на 90 градусов. С импульсом 1 мс сервопривод будет в положении 0 градусов, а с импульсом 2 мс сервопривод будет в положении 180 градусов. Вы можете получить полный диапазон движения, обновив сервопривод промежуточным значением.
ШИМ используется для удержания серводвигателя под углом 90 градусов относительно его кронштейна
Ресурсы и дальнейшее развитие
Широтно-импульсная модуляция используется в различных приложениях, в частности, для управления. Вы уже знаете, что его можно использовать для затемнения светодиодов и управления углом наклона серводвигателей, и теперь вы можете начать исследовать другие возможные применения. Если вы чувствуете себя потерянным, не стесняйтесь проверить SparkFun Inventor’s Kit, в котором есть примеры использования широтно-импульсной модуляции.Если вы готовы немедленно перейти к кодированию и иметь Arduino, посмотрите здесь пример кодирования PWM.
Не стесняйтесь исследовать:
Описание широтно-импульсной модуляции
ШИМ (широтно-импульсная модуляция) относится к концепции быстрой передачи цифрового сигнала по проводу. Наряду со многими другими применениями его можно использовать для моделирования переменного статического напряжения. ШИМ обычно используется для управления двигателями, нагревателями, светодиодами или фарами различной интенсивности или скорости.
ТЕРМИНОЛОГИЯ
- Period — время между нарастающими фронтами (секунды).
- Частота — частота нарастающих фронтов (Гц или циклов в секунду): это просто обратная величина периода
- Duty Cycle — время в периоде, когда импульс активен или высокий (в процентах от полного периода)
ПРИМЕР ИЛЛЮСТРАЦИИ
Пример сигнала ШИМ при рабочем цикле 50%
На приведенной выше диаграмме рабочий цикл показан равным 50%.Розовая линия показывает средний выходной сигнал, и вы можете видеть, что при рабочем цикле 50% среднее выходное значение составляет примерно 6 В или 50% от максимального напряжения. Ниже приведена диаграмма того, как выглядит сигнал ШИМ с коэффициентом заполнения 25%:
Пример сигнала ШИМ при рабочем цикле 25%
ЗВУК
Распространенной проблемой или жалобой на систему, использующую сигналы ШИМ, является слышимое гудение или гудение, исходящее от системы. Человеческое ухо может слышать частоты примерно до 20 кГц.Использование сигналов ШИМ на частоте 20 кГц или ниже может вызвать раздражающее жужжание. Использование более высоких частот, если возможно, может уменьшить это явление. Некоторые типы компонентов, например керамические конденсаторы, могут усиливать такие звуковые сигналы.
ЭФФЕКТИВНОСТЬ
При управлении двигателями более высокий КПД может быть достигнут на частотах выше 20-30 кГц. Повышенная эффективность достигается за счет того, что ток (индукция) в обмотках двигателя не падает полностью во время короткого периода выключения ШИМ.Коллапс этого индукционного поля занимает определенное время, которое зависит от характеристик двигателя. При управлении двигателями на высоких частотах ШИМ этот индукционный ток постоянно сохраняется в двигателях, что приводит к гораздо более высокому КПД.
АНАЛОГОВЫЕ СИГНАЛЫ
Сигналы PWM также могут использоваться для аппроксимации изменяющихся во времени аналоговых сигналов путем «сглаживания» их с помощью фильтра нижних частот. Самый простой фильтр — это просто конденсатор, подключенный между сигналом ШИМ и землей. Пример такого сглаживания показан на графике ниже, где волна ШИМ, изменяющаяся от примерно 25% до 75% цикла, приближается к синусоидальной волне. Фактический выходной сигнал, выделенный синим цветом, не пытается идеально имитировать синусоидальную волну, а скорее формирует набор локальных средних значений, которые действуют как синусоидальная волна.
Простым методом получения характеристик сигнала ШИМ является разделение аналогового сигнала на несколько дискретных сегментов, равных длине периода ШИМ. Затем цикл ШИМ для этого периода может быть установлен равным среднему значению аналогового сигнала за тот же интервал.
ШИМ, используемый для генерации переменного аналогового эквивалента. Взято из Википедии; используется под GPL
— ProtoSupplies
Описание
Модуль генератора сигналов ШИМ сочетает в себе точный генератор ШИМ 0–150 кГц с кнопочными элементами управления и ЖК-дисплеем, который показывает частоту и рабочий цикл.
- Модуль генератора сигналов ШИМ XY-LPWM или HW-753
- Диапазон выходной частоты 0-150 кГц
- 0-100% рабочий цикл
- Работа 3-30 В и амплитуда выходного импульса
- Простой кнопочный интерфейс
- ЖК-дисплей частоты и рабочего цикла
- Максимальный выходной ток 5-30 мА
- Последовательный интерфейс TTL, 3.Совместимость с логикой 3 В.
Это красивый маленький модуль, который можно использовать в качестве гибкого генератора прямоугольных импульсов для проведения экспериментов, тестирования и управления устройствами, которым требуется вход ШИМ. Наличие дисплея и простого кнопочного интерфейса упрощает настройку. Добавление выходного драйвера позволяет ему управлять двигателями, соленоидами, сервоприводами, тусклыми светодиодами и другими импульсными приложениями.
Теория работы
Восстановленные схемы показывают базовую компоновку модуля.
Эти модули построены на базе микроконтроллера Holtek N76E003AT20 или ST Micro STM8S003F3P6, и функциональность в обоих случаях одинакова.
Входное напряжение VIN + питает линейный стабилизатор 3,3 В, который подает 3,3 В на логические схемы модуля.
Микроконтроллер принимает входные сигналы от кнопок или последовательного интерфейса TTL и генерирует выходной сигнал ШИМ, используя встроенный генератор и схемы синхронизации микроконтроллера.
Выходной контакт ШИМ на микроконтроллере управляет транзистором типа NPN MMBT3904, который, в свою очередь, управляет выходным контактом ШИМ модуля.Транзистор имеет последовательный резистор 1 кОм, связанный с VIN +, поэтому сигнал ШИМ будет колебаться между землей и напряжением питания модуля на контакте VIN +.
Резистор 1K ограничивает максимально доступный ток привода, который будет варьироваться в зависимости от входного напряжения VIN + и находиться в диапазоне от 5 мА до 30 мА. Этот выход подходит для управления логическим входом или для управления MOSFET-транзистором, если вам необходимо увеличить возможности управления модулем. Существует также простой способ повысить допустимый ток примерно до 100 мА, что объясняется ниже в разделе Наши результаты оценки .
Помимо входного разъема VIN и выходных разъемов PWM, описанных ниже, на задней стороне платы имеется разъем J3, который обеспечивает доступ к порту программирования микроконтроллера. Это интересно только тем, кто думает о взломе программного обеспечения на модуле.
Обратите внимание, что мы можем поставлять платы с фабриками с маркировкой XY-LWPM или HW-753. Незначительные различия в функциональности указаны ниже в разделе «Наши результаты оценки»
.Питание модуля
Модуль может работать с входным напряжением от 3 до 30 В на соединениях VIN +.Два соединения имеют внутреннее соединение, и нужно использовать только одно. То же самое для VIN-, который является заземлением.
На входе VIN + имеется защитный диод Шоттки от обратной полярности. Логические схемы модуля питаются от регулятора 3,3 В, поэтому напряжение VIN + обычно выбирается для установки амплитуды, необходимой для выхода ШИМ. Если выход PWM будет использоваться с логикой 5 В, модуль должен питаться от 5 В.
Ниже 4 В подсветка ЖК-дисплея начнет тускнеть, но модуль продолжит работать до 3 В.
Модуль потребляет около 20 мА от источника питания при типичном режиме работы 5 В.
Установка частоты ШИМ
Частоту вывода ШИМ можно установить в диапазоне от 0 Гц до 150 кГц, нажимая кнопки FREQ + и FREQ- . Удерживание кнопок ускоряет изменение частоты.
При настройке выхода на дисплее отображается SET . Если никакие настройки не выполняются, отображается OUT .
Текущая частота отображается в верхней половине дисплея с десятичной точкой, указывающей отображаемый диапазон.
Если на дисплее отображается XXX , значение указано в Гц. Дисплей 500 показал 500 Гц. Значение можно регулировать с шагом 1 Гц в диапазоне 0–999 Гц.
Если на дисплее отображается X.XX , значение указано в кГц. Отображение 1,00 означает 1 кГц. Значение можно изменять с шагом 10 Гц в диапазоне 1.00 кГц — 9,99 кГц.
Если на дисплее отображается XX.X , значение указывается в десятках кГц. Отображение 10,0 означает 10 кГц. Значение можно регулировать с шагом 100 Гц в диапазоне от 10,0 кГц до 99,9 кГц.
Если на дисплее отображается X.X.X , значение указывается в сотнях кГц. Отображение 1.0.0 означает 100 кГц. Значение можно регулировать с шагом 1 кГц в диапазоне от 100 кГц до 150 кГц. Использование нескольких десятичных знаков — не самый интуитивно понятный способ отображения значения, но он не так уж и плох, если вы к нему привыкнете.
Установка рабочего цикла ШИМ
Рабочий цикл может быть установлен в диапазоне от 0 до 100% нажатием кнопок DUTY + и DUTY- . Удерживание кнопок ускоряет изменение рабочего цикла.
Текущий рабочий цикл отображается в нижней половине дисплея со знаком% после него.
ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС УПРАВЛЕНИЯ
Модуль имеет последовательный порт, который обеспечивает управление основными функциями модуля, включая установку частоты и рабочего цикла, а также считывание текущих настроек.
Последовательный порт совместим с 3,3 В, поэтому при использовании с микроконтроллером 5 В вам необходимо будет использовать переключатель логического уровня на линии RX модуля, чтобы избежать возможных повреждений.
Для связи используется скорость 9600 бод. Как и любой последовательный порт, линии TX / RX перекрестно соединены, поэтому линия TX MCU подключается к модулю RX, а линия RX MCU подключается к модулю TX. GND подключается к заземлению MCU и не требуется, если питание и земля модуля поступают от MCU.
Протокол связи очень прост, как описано ниже.
Установка частоты
Fxxx = Установить частоту
Чтобы установить частоту, вы отправляете данные в том же формате, в котором они отображаются на ЖК-дисплее, после прописной буквы «F».
‘ F100 ‘ = частота установлена на 100 Гц
‘ F1.00 ‘ = частота установлена на 1 кГц
‘ F10.0 ‘ = частота установлена на 10 кГц
‘ F1.0.0 ‘ = частота установлена на 100 кГц
Модуль отвечает « DOWN », если команда была понята, и « FAIL », если нет, например, если команда была отформатирована неправильно.
Установка рабочего цикла
Dxxx = Установить рабочий цикл
Чтобы установить рабочий цикл, вы отправляете желаемый рабочий цикл, которому предшествует заглавная буква «D».
‘ D050 ‘ = Рабочий цикл установлен на 50%
Чтение текущих настроек
Чтобы прочитать текущие настройки, вы отправляете строчные буквы « читать ».
Модуль будет реагировать с частотой и рабочим циклом следующим образом:
F1.00
D050
или может сообщить
F = 1. 00 кГц D = 50%
Соединения модулей
Подключения к модулю просты: питание находится в верхнем левом углу, последовательные соединения — в нижнем левом углу, а выход ШИМ — справа.
Обратите внимание, что соединения VIN +, VIN-, PWM и PWM GND имеют по две точки подключения. Все они имеют внутреннее соединение, поэтому необходимо подключить только 1 контакт каждого. Основания тоже все общие.
- VIN + = питание от 3 до 30 В (x2)
- VIN- = Земля (x2)
- ШИМ = Выход ШИМ (x2)
- GND = Земля ШИМ (x2)
Последовательный порт (помечен на задней панели)
- GND = серийное заземление
- TXD = Передача данных из модуля.Подключается к MCU RXD
- RXD = Получение данных в модуль. Подключается к MCU TXD
Модуль в сборе
Модуль имеет 4 отверстия размером M2 в четырех углах для установки при желании.
Этот модуль не поставляется с заголовками, но при необходимости их можно заказать отдельно.
РЕЗУЛЬТАТЫ ОЦЕНКИ:Эти модули имеют хорошее соотношение цена / производительность и имеют хороший потенциал для встраивания в различные приложения.
ЖК-экран имеет угол обзора вниз. Это особенно хорошо работает при установке в типичной горизонтальной ориентации, когда вы смотрите на экран со стороны кнопок модуля, но менее оптимально, если смотрите на модуль прямо. Экран не просматривается под углом вниз.
Обратите внимание, что на рынке существует как минимум 3 разновидности этого модуля. Поведение в основном такое же, но здесь есть некоторые отличия. Мы можем поставлять модули с маркировкой XY-LPWM или HW-753 .Мы не поставляем LPWM , поскольку последовательный порт не работает на тех, которые мы тестировали.
Модули с маркировкой XY-LPWM
- Нажатие и удержание кнопок FREQ или DUTY вызывает изменение выходного сигнала модуля по мере изменения дисплея
- Последовательное чтение вернется с данными в следующем формате:
F1.00
D050 - Сообщение о неверных последовательных командах «FAIL»
Модули с маркировкой HW-753
- Нажатие и удержание кнопок FREQ или DUTY вызывает изменение выходного сигнала модуля по мере изменения дисплея
- Последовательное чтение вернется с данными в следующем формате:
F = 1.00 кГц D = 50% - Неверные последовательные команды сообщают «ПАДЕНИЕ», но не во всех случаях.
Модули с маркировкой LPWM
- Нажатие и удерживание кнопок FREQ или DUTY не вызывает изменения вывода, пока кнопка не будет отпущена. Затем выходной сигнал изменяется с задержкой примерно в 1 секунду.
- Последовательный порт не работает.
Ограничения выходного привода
Наиболее вероятная проблема, с которой можно столкнуться с этими модулями, — это попытка управлять слишком большой нагрузкой и слишком сильное уменьшение выходной амплитуды из-за падения напряжения на резисторе R2 1 кОм. Этот резистор выбран для обеспечения безопасной работы в широком диапазоне входного напряжения. При 30 В он может пропускать 30 мА и рассеивать до 0,9 Вт, поэтому это физически большой резистор.
Для управления логическим входом это не проблема, поскольку текущие требования невелики, но если вы пытаетесь получить от него немного больше привода, не прибегая к подвешиванию полевого МОП-транзистора на выходе, вы можете кое-что сделать. .
Для специального применения, когда вы знаете, с каким напряжением вы будете его использовать, например, 5 В, R2 можно заменить или подключить параллельно с резистором меньшего номинала, чтобы увеличить пропускную способность по току и уменьшить падение напряжения на нем.
Максимальное ограничение тока зависит от токовой нагрузки небольшого транзистора, которым обычно является MMBT3904, который может работать до 200 мА в непрерывном режиме, но на всякий случай лучше удерживать его на уровне около 100 мА. В этом случае подойдет резистор на 50 Ом 1/2 Вт, чтобы обеспечить до 100 мА привода при 5 В.
Чтобы действительно увеличить выход, вы можете повесить что-то вроде модуля High-Power Dual MOSFET на выходе.
Точность выхода
Точность неплохая.На выборочной основе мы измерили следующее.
- 100 Гц / рабочий цикл 50% измерен 100,86 Гц с рабочим циклом 50,01% / 49,99%
- 1 кГц / 50% рабочий цикл измерен 1,01 кГц при рабочем цикле 49,98% / 50,02%
- Измерение рабочего цикла 10 кГц / 50% 10,09 кГц при рабочем цикле 49,82% / 50,18%
- 150 кГц / 50% рабочий цикл измерен 152,233 кГц при рабочем цикле 47,24% / 52,76%
Ниже приведены некоторые снимки осциллограмм, показывающие типичные характеристики на тех же частотах.
Захват осциллографа XY-LPWM 100 Гц Захват осциллографа XY-LPWM 1 кГц Захват осциллографа XY-LPWM 10 кГц Захват осциллографа XY-LPWM 150 кГцПример использования последовательного интерфейса управления генератором сигналов ШИМ
Программа, представленная ниже, очень проста и просто передает символы между вашим компьютером и MCU, например, платой Mega 2560 или Uno, которая затем передает символы в модуль генератора сигналов PWM и из него.
Он использует SoftSerial для обеспечения последовательного порта для модуля генератора сигналов ШИМ, так что он будет работать с любым MCU, даже если он имеет только один последовательный порт.В нашей настройке мы фактически используем Mega 2560 Pro, у которого есть 4 аппаратных последовательных порта, один из которых можно было бы использовать вместо него. Мы используем контакты 10 и 11 для порта SoftSerial, чтобы он работал с Mega 2560, а также с Uno и большинством плат Arduino.
Подключите модуль RXD к контакту 11 MCU, а модуль TXD — к контакту 10 MCU
Подключите VIN + к MCU 5V и VIN- к заземлению MCU.
Обратите внимание, что на выводе модуля RXD уровень входящего сигнала должен быть сдвинут с 5 В до 3.3V, чтобы избежать возможных повреждений. Это можно сделать с помощью переключателя логического уровня или простого резисторного делителя напряжения.
После загрузки программы откройте окно Serial Monitor и убедитесь, что оно установлено на 9600 бод , а также выберите « No Line Ending », иначе модуль не распознает команду, которую вы ему отправляете.
Вы можете ввести команду, которую хотите отправить модулю, в верхнем окне и посмотреть, чем модуль модуля отвечает в главном окне.MCU повторяет полученную команду, за которой следует ответ модуля PWM.
Допустимые команды:
- Fxxx , Fx.xx , Fxx.x или Fx.x.x = Установить частоту
- Dxxx = Установить рабочий цикл
- читать = читать текущие настройки
Обратите внимание, что команды для установки частоты, например F100 или рабочего цикла, например D050 , должны быть в верхнем регистре. Чтобы прочитать текущие настройки, команда read должна быть в нижнем регистре без какой-либо видимой причины.Нажмите Enter, чтобы отправить команду.
Пример выходных данных показан здесь справа, и вы должны увидеть обновление ЖК-дисплея с новыми значениями. В этом случае введены и отправлены команды: F1. 00 , D050 , читать
Чтобы увидеть, что на самом деле происходит на выходе ШИМ, вам понадобится осциллограф или частотомер. В качестве альтернативы вы можете подключить светодиод с резистором серии 1 кОм к выходу ШИМ и снизить частоту в диапазоне 1-10 Гц, чтобы вы могли видеть изменение частоты вспышки светодиода.Убедитесь, что номинал последовательного резистора достаточно высокий, чтобы избежать случайной перегрузки выхода ШИМ.
Программа тестирования управления генератором сигналов ШИМ
/ * Простая программа для проверки последовательного порта модуля ШИМ Использует аппаратный последовательный порт для связи с главным компьютером и программный последовательный порт для связь с модулем PWM для совместимости с любым MCU Подключения MCU 5V к модулю VIN + MCU GND к модулю VIN- MCU D11 к модулю RXD с использованием переключателя логического уровня или делителя напряжения MCU D10 к модулю TXD Когда команда вводится в Serial Monitor на компьютере, MCU будет передать его на модуль PWM и отобразить его в окне Serial Monitor.ДО ОТГРУЗКИ ЭТИ МОДУЛИ ЯВЛЯЮТСЯ:Обратите внимание, что частота и рабочий цикл указаны в верхнем регистре, то есть «F100» или «D050». С другой стороны, запрос «чтение» - это строчные буквы. Убедитесь, что в окне Serial Monitor Window установлено значение 9600 и «Нет конца строки». Любые символы, возвращенные из модуля, будут отображаться в окне Serial Monitor. Использует библиотеку Softserial.h. Может использовать аппаратный последовательный порт, если MCU его поддерживает * / #include < SoftwareSerial .h> SoftwareSerial SoftSerial (10, 11); // RX | Контакты TX.При необходимости можно переназначить const long BAUDRATE = 9600; // Скорость передачи модуля XY-LPWM char c = ''; // Передаваемый символ // ================================================ =============================== // Инициализация // ================================================ =============================== установка void () { SoftSerial.begin (BAUDRATE); // Инициализируем программный серийный объект Серийный .
Начало (9600); // Инициируем аппаратный последовательный порт Серийный .println («Последовательный тест модуля ШИМ»); Serial .println («Введите« Fxxx »,« Fx.xx »,« Fxx.x »или« Fx.x.x »для установки частоты»); Serial .println («Введите 'Dxxx', чтобы установить рабочий цикл»); Серийный .println («Введите 'read', чтобы получить текущие настройки»); } // ================================================ =============================== // Главный // ================================================ =============================== пустой цикл () { // Следим за любыми символами, возвращаемыми из модуля если (SoftSerial.доступный()) { c = SoftSerial.read (); if (c == 'F' || c == 'D') Серийный номер .write (''); // Добавляем пробел между командами Серийный . Написать (c); } // Считываем символ из Serial Monitor и отправляем в модуль XY-LPWM если ( серийный . доступный ()) { c = Серийный .read (); SoftSerial.
write (c); Серийный . Написать (c); // Эхо-символ, введенный в окно последовательного монитора } }
- Проверено
- Базовая функциональность модуля проверена.
- Упакован в высококачественный герметичный пакет ESD для защиты и удобства хранения.
Примечания:
- Модуль может иметь флюс для припоя на контактах ЖК-модуля. Не рекомендуется чистить, поскольку чистящая жидкость может легко попасть под ЖК-модуль, где она будет оптически видна в виде пятен на задней подсветке, и ее может быть трудно или невозможно удалить.
Технические характеристики
Эксплуатационные рейтинги | ||
Vcc | Диапазон | 3 — 30 В (3.3 или 5 В типично) |
Частота | Указанный диапазон | 0 — 150 кГц |
Рабочий цикл | 0–100% | |
Амплитуда импульса ШИМ | То же, что и VIN + | |
Размеры | Д x Ш x В | 52 x 32 x 10 мм (2,05 x 1,26 x 0,39 дюйма) |
Листы данных | Микроконтроллер Nuvoton | N76E003 |
ST Микроконтроллер | STM8S003F3 | |
Holtek LCD контроллер | HT1621 |
Amazon.

В настоящее время недоступен.
Мы не знаем, когда и появится ли этот товар в наличии.
- Убедитесь, что это подходит
введя номер вашей модели.
- 【ДИАПАЗОН ЧАСТОТ】 1 Гц ~ 100 кГц регулируется с помощью регулировки ручки потенциометра
- 【Рабочий цикл Диапазон регулировки 0 ~ 100%.】 Регулировка с помощью ручки потенциометра.
- 【ИСТОЧНИК ПИТАНИЯ】 Постоянный ток 3,3 В ~ 20 В универсальный, ширина ШИМ = входное напряжение
- 【Возможность вывода ШИМ-управления】 Вывод с использованием транзисторного драйвера S8050
- 【Подробности】 Без десятичной точки; ХЗ как единица; КГц как единица измерения с десятичной запятой; автоматическая конвертация; нет необходимости в ручной настройке
Характеристики
Тип основы | дефолт |
---|---|
Фирменное наименование | Hilitand |
Ean | 0783335216178 |
Вес изделия | 1.![]() |
Материал | Пластик |
Номер детали | Hilitande0bktmg32v |
Код UNSPSC | 41110000 |
UPC | 783335216178 |
Введение в ШИМ — типы широтно-импульсной модуляции
В этой статье мы увидим введение в широтно-импульсную модуляцию.Широтно-импульсная модуляция также известна как ШИМ. Широтно-импульсная модуляция имеет множество применений в цифровой связи, силовой электронике, автоматическом управлении интенсивностью уличных фонарей , регулировке скорости двигателя постоянного тока и регулируемом ШИМ для генерации аналогового сигнала из цифровых сигналов, цифро-аналоговом преобразователе . Есть много других применений этой техники. Два метода используются для генерации сигналов ШИМ: цифровой метод и аналоговый метод. Я рассмотрю оба метода в конце этой статьи.Итак, давайте начнем с основного знакомства с широтно-импульсной модуляцией. Широтно-импульсная модуляция или ШИМ — это метод получения аналоговых результатов с помощью цифровых средств. Он также может применяться в инверторах, источниках питания постоянного и переменного тока.
что такое широтно-импульсная модуляция
Что с ним можно делать ШИМ? Он обозначает широтно-импульсную модуляцию и представляет собой прямоугольную волну. вы можете контролировать время включения или выключения сигнала PWM. Минимальное и максимальное напряжение — это значения, ограничивающие колебания волн, пространство между ними называется амплитудой.Цикл — это интервал волны, в котором вы можете найти одно полное повторение, время, необходимое для завершения цикла, называется периодом времени. Временной период сигнала
Период времени = время включения + время выключения
Частота ШИМ
Частота равна 1 за период, что дает вам количество циклов в единице времени. Например, если период таймера сигнала составляет 20 мс, его частота будет 50 Гц, где Гц — это единица частоты. Читается герц.
Частота = 1 / период таймера
На рисунке ниже показаны амплитуда и период таймера формы волны.
Что такое рабочий цикл?
Рабочий цикл— важное понятие, используемое в широтно-импульсной модуляции. Рабочий цикл показывает, сколько времени, в течение которого сигнал является высоким, в общем периоде времени.
Итак, формула рабочего цикла показана в следующем выражении:
Рабочий цикл = (время включения сигнала / общий период сигнала таймера)
Как рассчитать выходное напряжение сигнала ШИМ?
Теперь посмотрим, как рассчитать рабочий цикл. Чтобы рассчитать рабочий цикл, вам нужно знать, в какой период времени сигнал высокий. Давайте установим максимальное время как 6 миллисекунд, а наше минимальное время как 4 миллисекунды. Общий период времени составляет 10 мс. Теперь давайте воспользуемся простым правилом, чтобы вычислить процентную долю периода, в котором сигнал является высоким, связывает его с общим периодом времени.
Рабочий цикл = 6 мс / 10 мс = 0,6
Решая это, мы получаем рабочий цикл 0,6, что означает безразмерную величину. Мы всегда измеряем рабочий цикл в процентах. Максимальный рабочий цикл может составлять 1 или 100%, когда время включения или высокого времени сигнала равно общему периоду времени сигнала.Точно так же минимальный рабочий цикл будет 0 или 0%, когда сигнал отключен в течение всего периода таймера. вы можете увидеть изображение сигналов с разной скважностью ниже.
Амплитуда ШИМ
Амплитуда широтно-импульсной модуляции — еще одна важная концепция, которую необходимо обсудить, чтобы полностью понять эту концепцию. Амплитуда — это разница между максимальным и минимальным напряжением сигнала.
Амплитуда = Vmax - Vmin
В случае цифровых сигналов минимальное напряжение обычно равно нулю.Таким образом, амплитуда — это пиковое напряжение сигнала. представим себе ШИМ-сигнал, который колеблется от 0 до 5 вольт. допустим, этот сигнал имеет рабочий цикл 50%. Что-то интересное произойдет с выходным напряжением вместо ожидаемых 5 вольт. Теперь будет просто 2,5 вольта.
Когда вы применяете эту прямоугольную волну с коэффициентом заполнения 50% к светодиоду, вы получите напряжение 2,5 на светоизлучающем диоде . Поскольку, когда вы применяете прямоугольную волну с коэффициентом заполнения 50% в качестве источника входного напряжения, формула выходного напряжения имеет вид:
Vвых. = D x Vмакс.
Где D — скважность импульса с сигналом модуляции или прямоугольной формы.Мы умножаем максимальное напряжение на рабочий цикл. Согласно приведенной выше формуле выходного напряжения, мы можем ясно видеть прямую зависимость между выходным напряжением и рабочим циклом. Максимальное напряжение или амплитуда сигнала остается постоянным. Чтобы получить более высокое напряжение, нам нужен более высокий сигнал рабочего цикла. Чтобы получить более низкое напряжение на выходе, нам нужно подать сигнал с более низкой скважностью.
Максимальное выходное напряжение будет равно = Vmax при рабочем цикле = 100% или 1 Максимальное выходное напряжение будет равно = 0 при скважности = 0
Аналогичная концепция используется в уличных фонарях для управления интенсивностью уличных фонарей.Тот же метод используется в схемах силовой электроники для понижения напряжения с использованием схем понижающего преобразователя .
Итак, теперь вы изучили основные концепции широтно-импульсной модуляции, такие как рабочий цикл, время включения сигнала, время выключения сигнала, период времени ШИМ и его амплитуда. В оставшейся части этой статьи я объясню различные методы, используемые для генерации сигналов ШИМ.
Методы генерации широтно-импульсной модуляции
Для генерации ШИМ используются два метода:
- Генерация ШИМ с использованием цифровых схем, таких как микроконтроллер.
- Генерация ШИМ с использованием аналоговых схем, таких как операционные усилители и схемы компаратора.
Генерация широтно-импульсной модуляции с помощью микроконтроллера
Для генерации цифрового сигнала с переменным рабочим циклом всегда рекомендуется использовать микроконтроллер, такой как Arduino. Потому что эти микроконтроллеры имеют встроенный модуль для генерации цифровых сигналов. Вы можете легко установить рабочий цикл с помощью программирования микроконтроллера в c. Я уже публиковал статью об этих концепциях.Проверьте эти сообщения, чтобы сгенерировать ШИМ с помощью микроконтроллера.
Генерация широтно-импульсной модуляции с использованием аналоговых схем
Самый простой способ сгенерировать сигнал ШИМ — использовать операционный усилитель. Для генерации цифрового сигнала с операционным усилителем мы используем операционный усилитель в качестве схемы компаратора. Операционный усилитель состоит из двух выводов, неинвертирующего вывода и инвертирующего вывода. Мы подаем треугольную волну на неинвертирующий вход и управляющее напряжение на инвертирующий вывод операционного усилителя.На рисунке ниже показаны все процессы генерации ШИМ-сигнала с помощью операционного усилителя.
Итак, чтобы понять принцип работы этого метода, для начала необходимо понять работу операционного усилителя как схемы компаратора. Итак, как вы можете понять из рисунков выше, когда треугольное напряжение, приложенное к неинвертирующему входу, меньше управляющего напряжения, которое подается на инвертирующий вывод операционного усилителя, выход схемы компаратора будет низким и всякий раз, когда напряжение треугольного сигнала больше управляющего напряжения, выходной сигнал компаратора будет высоким.Таким образом, время включения цифрового сигнала или широтно-импульсной модуляции зависит от величины управляющего напряжения. Таким образом, его среднее управляющее напряжение и рабочий цикл обратно пропорциональны друг другу. Поскольку рабочий цикл прямо пропорционален времени включения ШИМ-сигнала. Чтобы получить более высокий рабочий цикл, нам нужно уменьшить значение управляющего напряжения. Чтобы получить более низкий рабочий цикл, нам нужно увеличить значение управляющего напряжения. Вот как легко сгенерировать ШИМ с помощью компонентов аналоговой электроники.
Другой метод генерации ШИМ
На рынке доступно множество интегральных схем, которые используются для генерации сигналов ШИМ, а также они обладают способностью генерировать цифровые сигналы с переменной скважностью. Названия некоторых из них приведены ниже:
Применение широтно-импульсной модуляции
Я упомянул несколько приложений в начале этой статьи. Но вы можете мой проект, в котором я использовал ШИМ для различных приложений, таких как инверторы, трехфазный инвертор и силовая электроника.
AB-012: Приводные вибрационные двигатели с широтно-импульсной модуляцией
Обзор
В предыдущих бюллетенях по применению и во многих документах по вибрационным двигателям есть много ссылок на сигналы широтно-импульсной модуляции (ШИМ). В этом бюллетене объясняется, что такое ШИМ-сигнал, элементы, которые он содержит, его преимущества для управления вибрационным двигателем и как он обычно реализуется в схемах.
PWM, позволяющие пользователю оценить результаты данного сигнала PWM.Кроме того, для пояснений включены графики и примеры схем. Если у вас есть какие-либо вопросы о сигналах ШИМ и их использовании с вибрационными двигателями, вы можете связаться с нами здесь.
Описание широтно-импульсной модуляции (ШИМ)
Сигнал с широтно-импульсной модуляцией — это тип цифрового сигнала. Он чередуется между импульсами «Вкл» и «Выкл», также известными как высокий и низкий соответственно, на фиксированной частоте. Сигнал PWM отличается от других цифровых сигналов (например, прямоугольных сигналов), потому что время, в течение которого сигнал является высоким и низким, может варьироваться.Это полезно, потому что, когда сигнал ШИМ усредняется с помощью простого аналогового фильтра, вырабатывается постоянное напряжение, пропорциональное рабочему циклу (который представляет собой процент времени, в течение которого сигнал ШИМ является высоким). Поскольку скорость и частота вибрации вибрационного двигателя прямо пропорциональны напряжению, приложенному к двигателю, мы можем использовать ШИМ для точного управления работой двигателя.
Указанная частота сигнала должна быть достаточно высокой, чтобы нагрузка, в нашем случае вибрационный двигатель, не видела «всплесков» высокого и низкого уровня (коммутирующий цифровой сигнал).Вместо этого мы хотим, чтобы ШИМ-сигнал выглядел как сглаженный усредненный сигнал, который пропорционален скважности цифрового сигнала.
К счастью, из-за индуктивной и резистивной природы обмоток двигателя постоянного тока он фактически имеет встроенный аналоговый фильтр нижних частот. Если бы нагрузка была чисто резистивной, тогда форма волны ШИМ все равно была бы видна. Примеры схем ниже демонстрируют разницу в результирующем напряжении между индуктивной нагрузкой (с двигателем) и резистивной нагрузкой (без двигателя).С двигателем в качестве нагрузки сигнал ШИМ явно усреднен (хотя все еще немного шипастый / шумный, но мы можем улучшить это позже).
Пример двигателя, управляемого ШИМ-сигналом
Модуляция не работает, если нагрузка — резистор
Ширина пакета включения может быть отрегулирована любым устройством, генерирующим сигнал ШИМ (обычно микроконтроллером), который дополняется обратным изменением длительности импульса выключения, таким образом поддерживая ту же частоту. Изменение ширины импульса приводит к изменению среднего напряжения после фильтрации, позволяя представить любое значение между нулем и максимальным напряжением путем увеличения или уменьшения длительности импульса включения.Отсюда и термин широтно-импульсная модуляция.
Это позволяет осуществлять аналоговое управление двигателем с использованием цифровой сигнализации, что делает его очень полезным в электронных системах, которые используют микроконтроллеры для управления двигателем. Многие микроконтроллеры имеют встроенные генераторы ШИМ, в качестве альтернативы антикварная техника заключается в генерации их с использованием аналогового сигнала, пилообразного сигнала и компаратора.
Генерация сигналов ШИМ выходит за рамки этого бюллетеня, вместо этого мы сосредоточимся на том, как его можно использовать для управления двигателем, и предположим, что подходящий источник ШИМ легко доступен в схеме.
Сигнал ШИМ состоит из трех отдельных компонентов:
- A Voltage, \ (V_ {PWM} \) — значение «включенного» или высокого уровня напряжения (обычно между 2 ~ 5V, если сигнал PWM вырабатывается микроконтроллером / логикой CMOS).
- Частота А — период одного тактового цикла, то есть один высокий импульс и один низкий импульс.
- Рабочий цикл — отношение времени включения к времени отключения, которое контролирует результирующее напряжение, подробно объясненное ниже.
Рабочий цикл представляет собой длину импульса включения по сравнению с одним периодом цикла.Выражается в процентах. Чтобы проиллюстрировать разницу в рабочих циклах, ниже приведены примеры форм сигналов:
Рабочие циклы ШИМ
Результирующее напряжение, которое видит двигатель, является средним напряжением за период. Он легко рассчитывается по следующей формуле:
$$ V_ {AVG} = V_ {PWM} \ times Рабочий цикл $$
Из формулы видно, что мы можем регулировать напряжение, изменяя рабочий цикл. Например, если у нас есть сигнал ШИМ 3 В с рабочим циклом 50%, среднее выходное напряжение будет:
$$ V_ {OUT} = V_ {AVG} = V_ {PWM} \ times Рабочий цикл $$
$$ V_ {OUT} = 3V \ times 50% $$
$$ V_ {OUT} = 3В \ умножить на 0.5 $$
$$ V_ {OUT} = 1,5 В $$
Если мы хотим увеличить напряжение до 2,25 В, мы можем изменить формулу, чтобы найти соответствующий рабочий цикл:
$$ DutyCycle = \ frac {V_ {OUT}} {V_ {PWM}} $$
$$ DutyCycle = \ frac {2.25} {3} $$
$$ DutyCycle = 0,75 $$
$$ DutyCycle = 75% $$
Это означает, что управление скоростью двигателя, частотой вибрации, а также силой вибрации может быть легко достигнуто путем изменения рабочего цикла сигнала ШИМ в микроконтроллере.Преимущество этого метода состоит в том, что микроконтроллер может выполнять простую настройку своего выхода в зависимости от условий входа и своей программы. Кроме того, определенные выходные сигналы могут храниться в библиотеках или памяти, которые могут быть вызваны для определенных событий. Этот метод широко используется для тактильной обратной связи.
Пример из реальной жизни
Рассмотрим простой сигнал ниже:
Пример формы сигнала ШИМ
Здесь у нас есть простой сигнал, который начинается с рабочего цикла 25%, затем увеличивается до 50% и, наконец, 75%.Еще раз обратите внимание, что максимальное напряжение и частота остались постоянными, и изменился только рабочий цикл. Мы можем рассчитать среднее напряжение по каждой секции:
- 25% :: \ (V_ {OUT} = 0,25 \ times V_ {PWM} \)
- 50% :: \ (V_ {OUT} = 0,50 \ times V_ {PWM} \)
- 75% :: \ (V_ {OUT} = 0,75 \ раз V_ {PWM} \)
Выходное напряжение, которое представляет собой напряжение, воспринимаемое двигателем, для вышеуказанной формы волны показано ниже:
Выходное напряжение для различных рабочих циклов
Обратите внимание, что это пример, нацеленный на демонстрацию эффекта изменения выходного напряжения с разными рабочими циклами, и что фактические характеристики могут отличаться. Например, ускорение между уровнями напряжения может различаться в зависимости от доступного тока и других компонентов схемы.
Приводные двигатели с ШИМ
Как показано выше, микроконтроллер может легко изменять напряжение, подаваемое на двигатель, с помощью сигнала ШИМ. Он может создавать довольно сложные формы сигналов для повышения производительности тактильной обратной связи и даже сохранять эти формы сигналов в библиотеках или в каком-либо удаленном месте памяти.
К сожалению, невозможно управлять двигателем напрямую от самого микроконтроллера из-за того, что двигатель потребляет ток.Следовательно, необходим коммутирующий усилитель с соответствующими сигналами ШИМ для решения двух проблем:
- Подача тока, достаточного для привода двигателя.
- Подача напряжения, достаточного для обеспечения требуемого пускового напряжения двигателя.
Микроконтроллеры обычно разрабатываются так, чтобы быть максимально эффективными с возможностью быстрого переключения. В результате они используют сигналы низкого напряжения и тока для своих входов и выходов. Вибрационные двигатели, как и большинство двигателей постоянного тока, имеют максимальный рабочий ток намного выше, чем может обеспечить микроконтроллер.
Кроме того, игнорируя проблему подачи тока, выходное напряжение постоянного тока микроконтроллера также может быть слишком маленьким. В наших таблицах данных мы включаем значение Certified Start Voltage, то есть напряжение, при котором двигатель гарантированно запускается (в любой ориентации). В зависимости от выбора вибрационного двигателя и микроконтроллера, особенно для наших более крупных вибрационных двигателей, сертифицированное пусковое напряжение может быть выше выходного постоянного напряжения микроконтроллера.
В качестве примера мы можем сравнить обычный микроконтроллер Atmel ATmega168, который находится на популярной плате разработки Arduino Duemilanove, с нашим самым маленьким вибрационным двигателем 303-100.ATmega168 может обеспечивать постоянный ток до 40 мА и напряжение от 2,7 В до 5 В в зависимости от напряжения питания микросхемы.
303-100 имеет максимальный рабочий ток 85 мА (вдвое больше максимального значения ATmega168) и сертифицированное пусковое напряжение 1,8 В. Хотя в этом случае пусковое напряжение достаточно, ток — нет.
Если предположить, что напряжение питания составляет 2,7 В, диапазон значений ШИМ в начале сокращается. Рабочий цикл ниже 66% снизит среднее напряжение ниже пускового напряжения двигателя.
$$ Минимальный рабочий цикл = \ frac {V_ {Start}} {V_ {Supply}} $$
$$ Минимальный рабочий цикл = \ frac {1,8 В} {2,7 В} $$
$$ Минимальный рабочий цикл = 0,66667 $$
$$ Минимальный рабочий цикл = 66,7% $$
Когда двигатель вращается, пользователь может использовать полный диапазон значений ШИМ для изменения скорости двигателя от низкой до высокой амплитуды. Однако обратите внимание, что если двигатель остановится из-за слишком низкого сигнала ШИМ, вам придется повторно подавать пусковое напряжение, чтобы гарантировать, что он снова начнет вращаться в каждом случае.
Следовательно, для привода двигателя нам нужны дополнительные схемы, которые помогут удовлетворить требования к мощности двигателя.
Усиление сигнала ШИМ для двигателей
Эта опция полностью обсуждается в Информационном бюллетене 001: Дискретные схемы привода для вибрационных двигателей. Здесь сигнал PWM используется для переключения BJT или MOSFET, который, в свою очередь, управляет двигателем от источника более высокого напряжения.
Примеры схем n-канальных и p-канальных MOSFET приведены ниже.Хотя BJT можно использовать вместо MOSFET, они, как правило, менее эффективны и требуют дополнительного управления температурой. Сигнал ШИМ должен иметь достаточно высокое напряжение, чтобы полевой МОП-транзистор работал в области насыщения, в противном случае он также потребует радиатора и будет очень неэффективным. Чтобы добиться насыщения, попробуйте выбрать полевой МОП-транзистор с Vgs, который составляет менее 1/3 от Vmax сигнала ШИМ; это обеспечит жесткое включение MOSFET. Понижающий резистор гарантирует его резкое отключение.
Конфигурации со стороны низкого и высокого давления
Напряжение питания двигателя теперь равно \ (V_ {DD} \), что должно обеспечивать достаточно высокое напряжение и ток для адекватного управления двигателем. Эффект рабочего цикла остается тем же, за исключением того, что \ (V_ {PWM} \) заменяется на \ (V_ {DD} \).
$$ V_ {motor} = V_ {DD} \ times Рабочий цикл $$
Использование моторного привода IC
Микросхемы привода двигателейобладают множеством преимуществ. Они могут иметь встроенные H-образные мосты для продвинутой техники вождения, помогают регулировать напряжение и часто принимают сигналы ШИМ в качестве контроля.См. Бюллетень по приложениям 023: Ресурс миниатюрного драйвера двигателя для получения списка рекомендуемых драйверов для различных приложений.
DRV2603 Драйвер вибрационного двигателя (ERM или LRA)
Для получения дополнительной информации о том, как H-мосты могут повысить производительность тактильной обратной связи, см. Бюллетень по применению 002: Дискретные H-мостовые схемы для улучшенного управления вибрационным двигателем. Мы также опубликовали бюллетень по применению микросхем для управления вибрационными двигателями с линейным резонансным приводом, и, хотя LRA предъявляют различные требования к вибрационным двигателям с эксцентриковой вращающейся массой, некоторые из рассмотренных интегральных схем могут использоваться для управления обоими типами вибрационных двигателей.См. AB-003: Как управлять линейно-резонансными приводами для получения дополнительной информации.
Многие микросхемы приводов двигателей могут принимать сигнал ШИМ и соответствующим образом регулировать свой выходной сигнал. Дополнительная информация будет доступна в техническом описании конкретного чипа.
Использование сигнала ШИМ с микросхемой, которая включает управление H-мостом, может позволить пользователю легко реализовать продвинутые тактильные методы, такие как повышающая передача и обратное торможение. Чтобы быстро запустить вибрационный двигатель, на него может подаваться напряжение выше номинального в течение короткого периода времени.Это называется «перегрузкой» двигателя. И наоборот, чтобы быстро остановить двигатель, можно поменять полярность напряжения, что приведет к движению двигателя против его текущего направления вращения. Это называется обратным торможением.
Некоторые микросхемы приводов двигателей могут поддерживать вышеуказанные методы и использовать рабочий цикл сигнала ШИМ для определения его выхода, например, может быть достигнута следующая настройка:
Рабочий цикл ШИМ | Выход |
100% | Повышающая передача по часовой стрелке |
90% | Номинальное напряжение, приложенное по часовой стрелке |
50% | Без вращения |
10% | Номинальное напряжение, приложенное против часовой стрелки |
0% | Повышающая передача против часовой стрелки |
Выбор частот ШИМ и подавления электромагнитных помех / шумов
В нашем предыдущем бюллетене по применению 005 «Электромагнитная совместимость (EMC / EMI) с вибрационными двигателями» мы рассмотрели методы уменьшения электромагнитных помех или EMI.
Распространенным методом минимизации электромагнитных помех является использование конденсатора как можно ближе к клеммам двигателя. Это отфильтровывает высокочастотный шум и, к сожалению, также может фильтровать сигналы ШИМ. Чтобы избежать этого, емкость конденсатора должна быть выбрана так, чтобы резонансная частота системы была далека от резонансной частоты ШИМ. Частота сигнала ШИМ обычно составляет около 20 кГц или выше, и конденсатора 10–100 пФ будет достаточно.
Резонансная частота \ (f_ {r} \) может быть рассчитана как:
$$ f_ {r} = \ frac {1} {2 \ pi \ sqrt {L_ {m} C_ {e}}} $$
Где \ (L_ {m} \) — индуктивность двигателя, а \ (C_ {e} \) — внешний развязывающий конденсатор.Для двигателей с низким оконечным сопротивлением дополнительный резистор, включенный последовательно с конденсатором, поможет сбросить нагрузку.
Более комплексное решение включает два дополнительных конденсатора к указанному выше, по одному на клемму двигателя, подключенных между клеммой и корпусом двигателя. Это уменьшит искрение, особенно в двигателях с угольными щетками.
Заключение
Использование сигнала ШИМ для управления вибрационными двигателями может относительно легко обеспечить высокопроизводительное управление вибрацией.ШИМ-сигналы являются общей характеристикой многих микроконтроллеров, и простые программы могут регулировать их частоту и рабочий цикл. Эти программы можно использовать для создания сложных сигналов ШИМ и сохранения их для дальнейшего использования.
Рабочий цикл сигнала ШИМ представляет собой длину импульса включения в одном волновом цикле, выраженную в процентах. Это изменение ширины импульса влияет на среднее напряжение. Когда сигнал PWM, который имеет высокую частоту, подается на двигатель постоянного тока или вибрационный двигатель, тогда это среднее напряжение, которое приводит в движение двигатель.Это позволяет пользователям контролировать скорость двигателя или силу вибрации, регулируя рабочий цикл.
Типичные микроконтроллеры не могут обеспечить достаточный ток, а в некоторых случаях и напряжение, чтобы управлять вибрирующим двигателем. Поэтому рекомендуется использовать их вместе со схемой привода, примеры которой приведены в соответствующих разделах, а дополнительную информацию можно найти в других примечаниях к применению двигателя.
Введение в широтно-импульсную модуляцию (ШИМ)
Широтно-импульсная модуляция (ШИМ) — это мощный метод управления аналоговыми цепями с помощью цифровых выходов процессора.ШИМ используется в самых разных приложениях, от измерения и связи до управления мощностью и преобразования.
Аналоговая электроника
Аналоговый сигнал имеет постоянно изменяющееся значение с бесконечным разрешением как по времени, так и по величине. Батарея на девять вольт является примером аналогового устройства, поскольку ее выходное напряжение не равно 9 В, изменяется со временем и может принимать любое действительное числовое значение. Точно так же количество тока, потребляемого от батареи, не ограничивается конечным набором возможных значений.Аналоговые сигналы отличаются от цифровых сигналов, поскольку последние всегда принимают значения только из конечного набора заранее определенных возможностей, таких как набор {0V, 5V}.
Аналоговые напряжения и токи могут использоваться для непосредственного управления вещами, например громкостью автомобильного радио. В простом аналоговом радиоприемнике ручка соединена с переменным резистором. Когда вы поворачиваете ручку, сопротивление увеличивается или уменьшается. При этом ток, протекающий через резистор, увеличивается или уменьшается. Это изменяет величину тока, протекающего через динамики, тем самым увеличивая или уменьшая громкость.Аналоговая схема — это такая схема, как радио, выход которой линейно пропорционален входу.
Каким бы интуитивным и простым ни казалось аналоговое управление, оно не всегда экономически привлекательно или практично. Во-первых, аналоговые схемы имеют тенденцию с течением времени дрейфовать, и поэтому их очень сложно настроить. Прецизионные аналоговые схемы, которые решают эту проблему, могут быть очень большими, тяжелыми (просто подумайте о старом домашнем стереооборудовании) и дорогими. Аналоговые схемы также могут сильно нагреваться; рассеиваемая мощность пропорциональна напряжению на активных элементах, умноженному на ток через них.Аналоговая схема также может быть чувствительной к шуму. Из-за его бесконечного разрешения любое возмущение или шум в аналоговом сигнале обязательно изменяет текущее значение.
Цифровое управление
Цифровое управление аналоговыми цепями позволяет значительно снизить системные затраты и энергопотребление. Более того, многие микроконтроллеры и DSP уже включают в себя контроллеры PWM на кристалле, что упрощает реализацию.
В двух словах, ШИМ — это способ цифрового кодирования уровней аналоговых сигналов.Благодаря использованию счетчиков с высоким разрешением, рабочий цикл прямоугольной волны модулируется для кодирования определенного уровня аналогового сигнала. Сигнал PWM по-прежнему является цифровым, потому что в любой момент времени полное питание постоянного тока либо полностью включено, либо полностью отключено. Источник напряжения или тока подается на аналоговую нагрузку посредством повторяющейся серии импульсов включения и выключения. Время включения — это время, в течение которого питание постоянного тока подается на нагрузку, а время выключения — это период, в течение которого это питание отключено.При достаточной полосе пропускания любое аналоговое значение может быть закодировано с помощью ШИМ.
На рисунке 1 показаны три различных сигнала ШИМ. На рисунке 1а показан выход ШИМ при рабочем цикле 10%. То есть сигнал включен в течение 10% периода, а остальные 90% выключен. На рисунках 1b и 1c показаны выходы ШИМ при рабочем цикле 50% и 90% соответственно. Эти три выхода ШИМ кодируют три различных значения аналогового сигнала: 10%, 50% и 90% от полной мощности. Если, например, напряжение питания 9 В, а рабочий цикл 10%, значение 0.Результаты аналогового сигнала 9 В.
Рисунок 1. ШИМ-сигналы с различной скважностью
На рисунке 2 показана простая схема, которая может управляться с помощью ШИМ. На рисунке батарея 9 В питает лампочку накаливания. Если мы замкнем выключатель, соединяющий батарею и лампу, на 50 мс, лампочка будет получать 9 В в течение этого интервала. Если мы затем разомкнем выключатель на следующие 50 мс, лампочка получит 0 В. Если мы будем повторять этот цикл 10 раз в секунду, лампочка будет гореть, как если бы она была подключена к 4.Аккумулятор 5 В (50% от 9 В). Мы говорим, что рабочий цикл составляет 50%, а частота модуляции составляет 10 Гц.
Рисунок 2. Простая схема ШИМ
Для большинства нагрузок, как индуктивных, так и емкостных, требуется гораздо более высокая частота модуляции, чем 10 Гц. Представьте, что наша лампа была включена на пять секунд, затем выключена на пять секунд, а затем снова включена. Рабочий цикл по-прежнему будет составлять 50%, но первые пять секунд лампочка будет ярко гореть, а в следующие — не горит. Для того, чтобы лампочка видела напряжение 4.5 вольт, период цикла должен быть коротким относительно времени реакции нагрузки на изменение состояния переключателя. Чтобы добиться желаемого эффекта диммерной (но всегда горящей) лампы, необходимо увеличить частоту модуляции. То же самое и в других приложениях ШИМ. Общие частоты модуляции находятся в диапазоне от 1 кГц до 200 кГц.
ШИМ-контроллеры
Многие микроконтроллеры включают в себя контроллеры PWM на кристалле. Например, Microchip PIC16C67 включает в себя два, каждый из которых имеет выбираемые время и период.Рабочий цикл — это отношение продолжительности включения к периоду; частота модуляции обратна периоду. Чтобы начать работу с ШИМ, в техническом паспорте указано, что программное обеспечение должно:
- Установите период на встроенном таймере / счетчике, который обеспечивает модулирующий прямоугольный сигнал
- Установить время включения в регистре управления ШИМ
- Установите направление вывода ШИМ, который является одним из выводов ввода / вывода общего назначения.
- Запустить таймер
- Включить ШИМ-контроллер
Хотя конкретные контроллеры ШИМ действительно различаются по программным деталям, основная идея в целом одна и та же.
Связь и управление
Одним из преимуществ ШИМ является то, что сигнал остается цифровым на всем пути от процессора до управляемой системы; Цифро-аналоговое преобразование не требуется. Сохраняя цифровой сигнал, шумовые эффекты сводятся к минимуму. Шум может повлиять на цифровой сигнал только в том случае, если он достаточно силен, чтобы изменить логическую 1 на логический 0 или наоборот.
Повышенная помехозащищенность — еще одно преимущество выбора ШИМ перед аналоговым управлением и основная причина, по которой ШИМ иногда используется для связи.Переход с аналогового сигнала на ШИМ может значительно увеличить длину канала связи. На приемном конце подходящая цепь RC (резистор-конденсатор) или LC (индуктор-конденсатор) может удалить модулирующую высокочастотную прямоугольную волну и вернуть сигнал в аналоговую форму.
PWM находит применение в самых разных системах. В качестве конкретного примера рассмотрим тормоз с ШИМ-управлением. Проще говоря, тормоз — это устройство, которое сильно что-то зажимает. Во многих тормозах величина зажимного давления (или тормозного усилия) регулируется аналоговым входным сигналом.Чем больше напряжения или тока подается на тормоз, тем большее давление будет оказывать тормоз.
Выход контроллера ШИМ может быть подключен к переключателю между питанием и тормозом. Чтобы обеспечить большую мощность торможения, программному обеспечению нужно только увеличить рабочий цикл выходного сигнала ШИМ. Если требуется определенная величина тормозного давления, необходимо провести измерения для определения математической зависимости между рабочим циклом и давлением. (И полученные формулы или справочные таблицы будут изменены с учетом рабочей температуры, поверхностного износа и т. Д.)
Чтобы установить давление на тормоз, скажем, 100 фунтов на квадратный дюйм, программное обеспечение будет выполнять обратный поиск, чтобы определить рабочий цикл, который должен создавать такое количество силы. Затем он установит рабочий цикл ШИМ на новое значение, и тормоз отреагирует соответствующим образом. Если в системе имеется датчик, рабочий цикл можно настроить под управлением замкнутого контура до тех пор, пока желаемое давление не будет точно достигнуто.
PWM экономичен, экономит место и невосприимчив к шуму.