Схема преобразователя ШИМ в напряжение

Обновлено: 30.06.2024

Я пытаюсь преобразовать сигнал ШИМ Arduino в источник переменного напряжения постоянного тока. Это будет сделано путем изменения выходного рабочего цикла от Arduino. Мой вопрос возникает, когда я думаю о создании фильтров более высокого порядка. Будет ли фильтр более высокого порядка (Sallen-Key, Butterworth и т. д.) работать лучше, чем простой активный RC-фильтр? Я хочу, чтобы выходной сигнал был как можно более постоянным даже при низких рабочих циклах.

\$\begingroup\$ Да, как правило, правильно спроектированный фильтр более высокого порядка будет работать лучше, чем фильтр более низкого порядка, в смысле зависимости пульсаций от времени отклика для данной частоты ШИМ. Но вам нужно определить, насколько приемлема пульсация и как быстро она должна реагировать. «как можно более постоянный ток» — это не спецификация. \$\конечная группа\$

\$\begingroup\$ ШИМ-сигнал Arduino имеет частоту всего около 1 кГц, поэтому вам понадобится огромный индуктор для вашего фильтра. Возможно, было бы лучше использовать аналоговый выход напряжения для управления более быстрым драйвером ШИМ от 555 или реального регулятора напряжения. \$\конечная группа\$

\$\begingroup\$ Одним из вариантов является создание собственной функции ШИМ с более высокой частотой, что уменьшит потребность в фильтрах более высокого порядка. См. ссылку для Arduino PWM по умолчанию при использовании функции «analogWrite». Ссылка Предлагает использовать некоторый тип активного буфера (в зависимости от нагрузки), а не только пассивные компоненты. Какой тип выхода вы используете и какой тип Arduino? \$\конечная группа\$

\$\begingroup\$ Бессель 3-го порядка, использующий один или два операционных усилителя (один больше) или даже один транзистор (с сопутствующим падением напряжения 0,6 В), может подойти для многих нужд. \$\конечная группа\$

\$\begingroup\$ @Turbochad: Попробуйте использовать библиотеку TimerOne. Вы можете установить гораздо более высокую частоту ШИМ (что упрощает фильтрацию до «чистого» постоянного тока), и вы получите 10 бит (1023 шага) для рабочего цикла ШИМ. \$\конечная группа\$

2 ответа 2

Будет ли фильтр более высокого порядка (Sallen-Key, Butterworth и т. д.) работать лучше, чем простой активный RC-фильтр?

Да, будет. Это будет лучше, потому что по мере увеличения «порядка» фильтра артефакты переключения ШИМ, видимые на выходе, постепенно уменьшаются по амплитуде: -

введите здесь описание изображения

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

Итак, с фильтром первого порядка вы получаете затухание 20 дБ, а с фильтром 2-го порядка вы получаете затухание 40 дБ при частоте среза, в десять раз превышающей частоту среза.

Для фильтра 3-го порядка вы получаете затухание 60 дБ на частоте среза. Если вы не знали, это реальное ослабление напряжения 1000:1.


У кого-то может быть идея, как выжать из Arduino более высокую частоту ШИМ, но если она ограничена, как кажется, около 1 кГц, частота переключения работает прямо против вашей цели «Как можно больше постоянного тока». . Вам понадобится огромный выходной фильтр по сравнению с более высокой, но все же простой в работе с частотой переключения. Помимо физического размера и стоимости, для первоначальной зарядки выходного конденсатора требуется больший скачок тока, и вы получите более медленный отклик на изменения напряжения источника или тока нагрузки.

Вы можете использовать аналоговый выход для управления регулятором напряжения или тока, управляемым напряжением, как, вероятно, ваш лучший вариант (вы можете настроить его так, чтобы ваше опорное напряжение контролировало рабочий цикл 0-100% или чтобы преобразователь просто пытался соответствовать вашему опорное напряжение). Это создаст гораздо меньшую нагрузку на Arduino, чем ручное управление выходом для рабочего цикла. Даже если все, что вам нужно, это скудная частота переключения 100 кГц, если все, что делает Arduino, — это управление регулятором напряжения, вы не захотите прерывать его 100 000 раз в секунду от более важных задач без веской причины. Смысл этих ШИМ-выходов в том, чтобы автоматизировать управление выходом, и если они сочли, что это стоит делать на скудной частоте 1 кГц, то стоит делать и на 100 кГц. Мне известны только те, которые используются для управления током в светодиодах, но я не удивлюсь, если вы найдете ШИМ-драйверы или регуляторы напряжения, способные работать на гораздо более высокой частоте, которыми можно управлять через шину I2C или что-то в этом роде. Возможно, стоит изучить вопрос, поскольку вы можете управлять несколькими преобразователями через один контакт.

Если вы пытаетесь создать свой собственный ШИМ-регулятор, чтобы научиться, вы можете попробовать следующее, у меня это сработало хорошо, хотя он не так хорошо / быстро реагирует, как выделенный чип, его довольно легко настроить. до 100–200 кГц.

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

Теперь замените опорное напряжение конденсатором на землю и настройте компаратор или операционный усилитель для сравнения выходного напряжения с новым опорным напряжением. Если выходное напряжение ниже опорного напряжения, зарядите конденсатор. Если выходное напряжение выше опорного напряжения, разрядите конденсатор. Это превращает привод с рабочим циклом, управляемым напряжением, в преобразователь напряжения, управляемый напряжением. Его преимущество заключается в том, что он снимает почти всю вычислительную нагрузку с Arduino. Если вы используете версию компаратора, я рекомендую настроить ее так, чтобы она разряжалась быстрее, чем заряжалась, чтобы свести к минимуму перерегулирование при запуске и скачки нагрузки. Если вы делаете версию с операционным усилителем, вам нужно немного больше учиться, но вы можете более легко настроить его, чтобы он регулировал опорный конденсатор пропорционально тому, насколько далеко выходное напряжение, давая вам более быстрый отклик. Насколько я понял, вам нужно два операционных усилителя, один для расчета величины выходной невязки, а второй для соотнесения ее с текущим напряжением на конденсаторе.

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

Теперь, в качестве последнего шага, который использует больше вычислительной мощности для лучшего результата, вы можете убрать операционный усилитель или компаратор и заставить Arduino обеспечивать опорное напряжение для рабочего цикла. Дайте Arduino вход датчика выходного напряжения, а также вход датчика тока. Теперь вы можете построить более продвинутый алгоритм, использующий измерение тока для прогнозирования изменений выходного напряжения и пропорционального и агрессивного реагирования на них. Если у вас есть навыки исчисления/математики, упомянутые выше, вы можете сделать это с помощью прямой математики, а не иметь систему, которая реагирует на изменения. Если у вас есть некоторые из этих математических навыков, вы можете использовать версию для бедняков, в которой алгоритм выполняет интерполяцию между значениями в многомерной таблице поиска. Это может уменьшить нагрузку на обработку за счет использования памяти, и если значения таблицы поиска заполняются экспериментально, вы можете обойти необходимость вычислений. Это также позволяет вам добавлять такие функции, как ограничение тока, управление током или отключение при перенапряжении/перегрузке по току. Добавление большего количества входов может дать вам отключение по температуре, защиту от понижения напряжения или что-то еще, но стоит отметить, что большинство функций, которые вам действительно нужны, могут быть встроены по умолчанию в современные микросхемы стабилизатора напряжения, сохраняя ваш Arduino для более важных задач.

Теперь вы узнали то, что можно узнать более или менее, поэтому, возможно, вы захотите перейти к специализированным регуляторам/микросхемам напряжения, которые обеспечат лучший результат при меньшем энергопотреблении и удобстве современной (МГц) скорости переключения. . Вы по-прежнему можете использовать свой Arduino для управления ими, поэтому, например, если регулировка напряжения 0-100% должна была разумно управлять устройством Пельтье, это может быть действительно хорошим приложением для использования микроконтроллера из-за нескольких входов и сложных показатели эффективности (раздельное управление элементами Пельтье и вентилятором в зависимости от температуры горячей стороны, температуры холодной стороны и температуры окружающей среды, если необходимо). Даже для такого типа приложений Arduino, вероятно, является огромным излишеством, но это пример, когда вы можете компенсировать непроизводительные потери мощности при работе микроконтроллера с большим приростом эффективности.

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

Я выбрал 4700 Ом для R1 и конденсатор 10 мкФ для C1. Я сделал это, потому что это будет работать и (что более важно), потому что это то, что у меня есть под рукой.

Таким образом, моя постоянная времени составляет 4700 * 0,000010 или 0,047 секунды.

При наложении на классическую кривую постоянной времени RC (со значением 5 вольт) она будет выглядеть примерно так:

Преобразователь ШИМ в операционный усилитель Arduino LM358

Чтобы понять, как фильтр нижних частот взаимодействует с ШИМ, также полезно посмотреть на постоянную времени разряда. Кривая представляет собой обратную кривую заряда.s:

Arduino PWM + фильтр аналогового управления напряжением

ШИМ Arduino Uno имеет две частоты по умолчанию. Один 490 Гц, другой 980 Гц. Я использую цифровой вывод PWM с выходом 490 Гц. Время, необходимое для завершения одного цикла, определяется путем вычисления обратной частоты:

Время в секундах = 1 / частота в герцах

Поэтому период составляет 1/490 или приблизительно 2 мсек. Если мы выберем рабочий цикл 50%, синхронизация будет выглядеть примерно так:

Arduino PWM + учебник по аналоговому выходу фильтра

Итак, у нас есть конденсатор, зарядка которого занимает 235 мс, и ШИМ, который включается только примерно на 1 мс. На первый взгляд можно сделать вывод, что он никогда не зарядится. Однако, если вы внимательно изучите кривые заряда и разряда, вы увидите, что он заряжается (хотя и медленно) по схеме, похожей на искривленную лестницу.

Начать с первого цикла зарядки

За эту миллисекунду давайте оценим, до какой степени зарядится конденсатор. Давайте обманывать. Перейдите к онлайн-калькулятору, который находится ЗДЕСЬ. Введите значения сопротивления и конденсатора, введите 5 для напряжения питания и введите 1 мс для времени. Вы увидите, что после этой первой миллисекунды конденсатор зарядится до 0,1053 вольта. (около 2,1 процента).

Изучите первый цикл разрядки

Теперь, когда мы начинаем цикл разрядки, у нас есть 0,1053 вольта; не пять вольт. Давайте перейдем к другому онлайн-калькулятору, найденному ЗДЕСЬ. Введите 0,1053 вольта и другие значения. Обязательно введите время. Вы увидите, что при этом конденсатор потерял всего около двух процентов и находится на уровне около 0,103 вольта.

Второй цикл зарядки

Во втором цикле зарядки напряжение на крышке начинается там, где в первом цикле разрядки осталось около 0,103 В. Вернитесь к онлайн-калькулятору для зарядки крышек. Установите напряжение питания на 5,0–0,103 вольта (или 4,897 вольта). Вы увидите результат 0,103 вольта. Это значение добавляется к уже имеющимся 0,103 вольта. Таким образом, в конце этого цикла зарядки у нас будет около 0,206 В.

Второй цикл разрядки

Вернитесь к калькулятору разряда, и вы увидите, что потеряли еще 2 процента... установив значение на конденсаторе примерно в 0,201 В.

Завершение зарядки фильтра нижних частот

Этот «шаговый» процесс продолжается до тех пор, пока конденсатор не зарядится примерно до 2,5 В. Чтобы добраться туда, потребуется около десяти постоянных времени RC (около половины секунды). Когда он доберется туда, небольшие циклы зарядки и разрядки будут продолжаться. С помощью осциллографа вы увидите, как они пересекают верхнюю часть значения постоянного тока. Моя установка дала около 50 мВ пульсаций. Я покажу вам, как это исправить, в другом уроке.

В этой статье представлена ​​простая схема для преобразования сигнала транзисторно-транзисторной логики (ТТЛ) или сигнала широтно-импульсной модуляции (ШИМ) в аналоговый сигнал с использованием операционного усилителя LM358. Схема может использоваться как удлинитель для Arduino, микроконтроллера (MCU) или генератора сигналов TTL/CMOS.

Цифроаналоговые преобразователи (ЦАП) на основе ШИМ часто используются для получения аналоговых сигналов из цифровых выходов. Обычно решения для таких ЦАП на основе ШИМ включают три основных блока:

<р>1. Цифровой ШИМ-генератор: в основном используется микроконтроллер или Arduino, но также может использоваться схема генератора прямоугольных импульсов.

<р>2. Аналоговый интегратор: В простейшем случае это может быть одна сеть RC. Иногда сигнал предназначен для управления электродвигателем.

<р>3. Аналоговый выходной буфер или усилитель: обеспечивает необходимое выходное напряжение, ток и мощность.

Основные преимущества ЦАП с ШИМ включают простоту, низкую стоимость, цифровое управление разрешением до 10 бит (или более) и возможность получения высоких выходных тока, напряжения и мощности.

Схема и работа преобразователя ШИМ-аналоговых сигналов

Блок-схема ШИМ-аналогового преобразователя показана на рис. 1, а его принципиальная схема на рис. 2. Схема состоит из двух частей: входного пассивного RC-фильтра нижних частот с тремя каскадами и двух выходных каскадов. (ВЫХОД1 и ВЫХОД2).

Рис. 1: Блок-схема преобразователя ШИМ в аналоговый сигнал Рис. 2: Принципиальная схема преобразователя ШИМ в аналоговый сигнал

Входные пассивные фильтры нижних частот построены на резисторах R2, R3 и R4 и конденсаторах C1, C2 и C3. Частоты среза на уровне -3 дБ для каждой из трех ступеней рассчитываются по формулам, приведенным ниже.

Для первого этапа
F1=1/(6,28×R2×C1)

Для второго этапа
F2=1/(6,28×R3×C2)

Для третьего этапа
F3=1/(6,28×R4×C3)

В большинстве случаев F1=F2=F3,
где R4=10×R3=100×R2 и R2 510 Ом

Вы можете выбрать любые подходящие частоты среза для RC-фильтров. Здесь мы используем источник питания 5 В компьютера или Arduino на CON2 в качестве источника опорного напряжения для сигнала ШИМ.

Выходные каскады построены на двух внутренних операционных усилителях IC1. Первый внутренний операционный усилитель (OA1) образован выводами 2, 3 и 1 микросхемы IC1, а второй операционный усилитель (OA2) - выводами 6, 5 и 7 микросхемы IC1.

При замыкании переключателя S2 оба операционных усилителя работают параллельно на одну и ту же нагрузку на CON4. При его открытии оба производят одинаковое напряжение на двух отдельных нагрузках. Желательно, чтобы нагрузка была выше 2 кОм.

Если S1 замкнут, вы можете использовать блок питания компьютера VCC1, как Arduino на CON2. Если S1 разомкнут, вы можете использовать источник питания VCC2 до 32 В на CON3.

OA1 работает как неинвертирующий усилитель с коэффициентом усиления (Av1), определяемым предустановкой VR1 и резистором R7. Минимальное усиление равно +1, максимальное усиление равно +11. Коэффициент усиления устанавливается в соответствии с требованиями с помощью VR1, требуемого выходного напряжения и питания IC1. Он рассчитывается по упрощенной формуле, приведенной ниже.

Av1=1+VR1/R7
OA2 работает как ведомый, где усиление Av2=+1

Создание и тестирование

Разметка печатной платы ШИМ-аналогового преобразователя в натуральную величину показана на рис. 3, а расположение компонентов — на рис. 4.

Рис. 3: Схема печатной платы преобразователя ШИМ-сигнала в аналоговый Рис. 4: Схема компонентов печатной платы

Загрузить PDF-файлы компоновки печатных плат и компонентов: нажмите здесь

Перед тестированием обратите внимание, что максимальные выходные напряжения (Vout) на OUT1 и OUT2 зависят от: питания операционных усилителей, положения потенциометра VR1 и уровней выходного напряжения TTL/CMOS-выхода, управляющего модулем.

Чтобы протестировать схему, зафиксируйте частоту ШИМ (например, 1000 Гц) и измените период времени рабочего цикла TON и TOFF импульсов. См. таблицу для проверки выходных напряжений.


< /p>

Линейность преобразования в некоторой степени зависит от параметров цифрового выхода. Следует избегать слишком низкого или слишком высокого рабочего цикла ШИМ. Обычно необходимо избегать рабочего цикла ШИМ 95%. В большинстве случаев ЦАП с ШИМ подходят для управления светодиодами, лампами накаливания, ЖК-дисплеями, двигателями постоянного тока и громкоговорителями, среди прочего.

Спектр прямоугольного сигнала, создаваемого ШИМ, большой и переменный. Это может быть проблемой без соответствующей фильтрации, построения и разводки печатной платы. Резисторы, конденсаторы и операционные усилители для фильтрации и буферизации сигналов ШИМ должны иметь соответствующие характеристики. Обычно при использовании ЦАП с ШИМ вы получаете высокое разрешение, но не точность.

Петре Цв Петров был научным сотрудником и доцентом в Техническом университете Софии (Болгария) и экспертом-лектором в OFPPT (Касабланс), Королевство Марокко. Сейчас он работает инженером-электронщиком в частном секторе Болгарии.

Понять разницу между аналоговой модуляцией и широтно-импульсной модуляцией (ШИМ).

Узнайте, как преобразовывать аналоговые сигналы в сигналы ШИМ.

Советы по проектированию преобразователей аналогового сигнала в ШИМ.

Я никогда не был хорошим фотографом. Тем не менее, я отчетливо помню, как впервые сделал снимок своей старой камерой Kodak. Это было почти два десятилетия назад, а в 2012 году компания Kodak объявила о банкротстве, так как не смогла быстро и достаточно эффективно перейти в эпоху цифровой фотографии.

Я больше не возился с пленочными (аналоговыми) камерами, так как освоился со смартфоном и его различными фильтрующими приложениями. Тем не менее, падение Kodak как лидера отрасли — это урок гибкости, особенно при переходе от одной технологии к другой. Каким-то образом все это напоминает мне о том, как важно уметь преобразовывать аналоговый сигнал в его аналог с широтно-импульсной модуляцией (ШИМ). Потому что это требует — и обеспечивает — такую ​​же гибкость, как и при проектировании схем, и это будет в центре внимания этой статьи.

Аналоговый и ШИМ

Пример ШИМ-сигнала.

Преобразование аналогового сигнала в ШИМ может сбить с толку тех, кто не знаком с этими двумя технологиями. ШИМ можно использовать для создания аналоговых сигналов. Однако аналоговые сигналы не являются ШИМ-сигналами. Имеет ли это смысл? Давайте углубимся.

Аналоговый сигнал – это непрерывный сигнал, форма волны которого кажется непрерывной в течение бесконечного периода времени. Синусоида является примером аналогового сигнала. Когда вы поворачиваете ручку диммирования, вы аналогичным образом меняете подаваемое напряжение.

Между тем, ШИМ – это технология, которая изменяет коэффициент заполнения цифрового сигнала. Скважность — это отношение активного интервала сигнала ко времени полного цикла.ШИМ-сигнал с рабочим циклом 50 % — это сигнал, в котором форма волны имеет сбалансированный интервал низких и высоких частот.

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

Как преобразовать аналоговые сигналы в ШИМ

Микроконтроллер преобразует аналоговые сигналы в ШИМ.

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

Итак, вам нужно поработать над схемой, которая принимает пользовательский ввод в аналоговой форме и преобразует его в правильный ШИМ-сигнал. Недорогой метод преобразования аналоговых сигналов в сигналы ШИМ заключается в использовании специализированной ИС, такой как LT6992. Это генератор ШИМ, рабочий цикл которого можно контролировать, подавая аналоговый сигнал 0–1 В.

Хотя использование ИС LT6992 является самым простым методом, он не подходит для сложных алгоритмов или нелинейной связи аналогового и ШИМ-выходов, например, для сопоставления ручки на 360° с серводвигателем, который поворачивается от 0°-180°. Максимальное вращение серводвигателя обычно достигается при рабочем цикле 10%. Поэтому вам потребуется преобразовать полный аналоговый диапазон регулятора в шкалу в пределах 10 % рабочего цикла выхода ШИМ.

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

Советы по проектированию оборудования для преобразователя аналогового сигнала в ШИМ

Разделение аналоговых и ШИМ-сигналов во избежание наложения шумов имеет решающее значение.

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

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

Спроектировать преобразователь аналогового сигнала в ШИМ несложно, если вы используете правильные инструменты проектирования и анализа печатных плат. OrCAD PCB Designer позволяет вам планировать размещение компонентов и применять строгие проверки правил проектирования, что облегчает вам работу и гарантирует, что все будет сделано правильно с первого раза.

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

Об авторе

Решения Cadence PCB — это комплексный инструмент для проектирования от начала до конца, позволяющий быстро и эффективно создавать продукты. Cadence позволяет пользователям точно сократить циклы проектирования и передать их в производство с помощью современного отраслевого стандарта IPC-2581.

Следуйте на Linkedin Посетите веб-сайт Больше контента от Cadence PCB Solutions
Предыдущая статья

Три ключевых метода рассеивания тепла на печатных платах

Разработка надежных электронных продуктов зависит от внедрения методов рассеивания тепла на печатных платах.

Следующая статья

Ключевые вопросы, которые следует задать производителю печатных плат

В этой статье изложены основные вопросы, которые проектировщики и инженеры должны задать производителям печатных плат.

Читайте также: