Управление сигналом ШИМ

ШИМНаши статьи по электронике — это не только знакомство с новыми электронными схемами, но и нужные советы, а также теоретическая информация.

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

ШИМ — что это такое?

Краткое сокращение PWM (ШИМ) известно практически каждому, кто имел дело с электродвигателями или моделированием. ШИМ, от английского PWM (pulse width modulation) переводится как Широтно-Импульсная Модуляция. Звучит умно, но что это на самом деле означает? Проверим на практике!

Начнем сразу с простого упражнения. На этот раз нам понадобятся:

  • 1 × 1000 мкФ конденсатор,
  • Резистор 1 × 10 кОм,
  • Резистор 1 × 330 Ом,
  • 1 × светодиод (выберите свой любимый цвет),
  • 1 × микровыключатель,
  • Батарея 4 × AA,
  • 1 × корзина для 4 батареек АА,
  • 1 × макетная плата,
  • комплект соединительных проводов.

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

Схема ШИМ
Схема, имитирующая работу ШИМ

На практике, сборка на плате может выглядеть так:

Схема на макетной плате Образцовая реализация на практике
Схема сборки на макетной плате Реализация на практике

Если конденсатор разряжен, при включении питания ничего не должно произойти. После нажатия на кнопку, диод начнет медленно светиться, а через некоторое время «засветится на полную мощность». Это связано с тем, что после нажатия кнопки, конденсатор С1 медленно заряжается, и только после его зарядки весь ток начнет перетекать на диод. Когда вы отпускаете кнопку, диод медленно погаснет. Это связано с тем, что при отключении от батареи, светодиод питается только от заряженного конденсатора.

Итак, у нас есть схема, которая медленно увеличивает яркость, и также медленно гасит диод. А что произойдет, если мы будем несколько раз нажимать и отпускать кнопку так, чтобы каждое состояние длилось около полсекунды? Проверьте это на практике! Также посмотрите, что произойдет, если вы увеличите это время. Это будет непросто, но если вам удастся поддерживать по времени регулярное нажатие, светодиод должен будет гореть все время, только не на всю мощь.

Такое равномерное нажатие и отпускание кнопки приводит к тому, что напряжение приходит в схему в виде следующего прямоугольного сигнала, где:

  • X — время подачи напряжения в систему,
  • T — время одного цикла / периода.
Прямоугольный сигнал
Прямоугольный сигнал — напряжение есть, нет, есть, нет и т.д.

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

Чем дольше эти фазы длятся, тем пульсации становятся заметнее, поскольку изменения напряжения на конденсаторе уже значительны.

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

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

Этот эксперимент был простым. По сути, это была простая симуляция генератора ШИМ, то есть модуляция ширины сигнала. А теперь перейдем к подробному обсуждению темы.

Для чего используется ШИМ?

Как вы, возможно, уже знаете, микроконтроллеры (например, Arduino) представляют собой цифровые схемы. Это означает, что обрабатываемые ими сигналы представляют собой только логические единицы и нули, а с точки зрения электроники выглядят так:

  • логический ноль — это отсутствие напряжения,
  • логическая единица — это напряжение питания системы (например, 3,3 В или 5 В).

Если цифровая схема может работать только с нулями и единицами, то возникает вопрос: как плавно регулировать яркость диода, ведь на выходе может появиться только одно из двух напряжений (то есть 0 В или 5 В)? Вот здесь ШИМ придет нам на помощь.

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

Однако, если мы будем использовать возможности микроконтроллера для включения и выключения диода, вместо того, чтобы нажимать кнопку вручную, мы сможем управлять диодом намного быстрее и с гораздо большей частотой. Человеческое зрение несовершенно, и уже при 24 Гц (т.е. 24 изменения в секунду) глаз перестает видеть следующие фазы мигания и усредняет результат — мы знаем это из кино и телевидения!

Читать также:  Пассивные RC-фильтры высоких частот

Конечно, такая низкая частота не дает идеального изображения, поэтому лучше использовать более высокую частоту обновления (например, 50 Гц или 100 Гц).

Для современных процессоров с тактовой частотой в гигагерцах, такие частоты очень низкие — но для нашего очень несовершенного зрения их более чем достаточно.

Зачем нужен был конденсатор?

Вернемся еще раз к нашему примеру с конденсатором — чем может быть полезна такая схема? Как мы знаем, для управления диодом конденсатор не нужен, наш глаз усредняет эффект свечения диода. Именно конденсатор можно использовать на практике для усреднения напряжения. Правильно подобрав номинал конденсатора (и резисторов), на его выводах мы получили бы напряжение (почти) постоянное, плавно регулируемое в диапазоне 0–6 В в зависимости от заполнения ШИМ-сигнала.

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

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

Вы можете легко проверить это самостоятельно, подключив мультиметр к выводам конденсатора емкостью 1000 мкФ. Быстро нажмите кнопку и посмотрите, что покажет мультиметр. Вместо 6 В, которые мы используем для питания нашей системы, мы будем видеть, например, 1,7 В. На конденсаторе значение этого напряжения будет меняться по мере «заполнения» сигнала, управляющего схемой — в данном случае это означает, что чем дольше нажата кнопка (время, когда она не нажата), тем выше будет напряжение на конденсаторе.

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

Использование ШИМ для передачи информации

Оказывается, ШИМ можно использовать и для передачи сигналов между устройствами. Одна из самых известных схем этого типа является сервопривод. Это небольшой мотор, который может вращаться в диапазоне (чаще всего) от 0 ° до 180 °. С помощью прогрммирования, мы можем «приказать» ему занять определенное положение, например, 45 °.

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

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

Пример сервопривода
Пример сервопривода, которым управляет ШИМ

Типичный сигнал сервоуправления должен длиться 20 мс, а ширина импульса должна варьироваться от 1 мс до 2 мс. Встроенный контроллер интерпретирует сигнал таким образом, что устанавливает рупор (элемент, прикрепленный к оси) пропорционально длительности импульса. Например, импульс длительностью 1 мс крайний левый угол, импульс 1,5 мс — центр сервопривода, а 2 мс — крайний правый угол.

Принцип работы сервопривода
Принцип работы сервопривода

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

Пример использования сервопривода
Пример использования сервопривода

Стабилизаторы импульсов

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

Популярный стабилизатор LM7805
Популярный стабилизатор LM7805

Эти элементы дешевы и просты в использовании. Однако у них есть большой недостаток — низкая эффективность. Если мы используем такой стабилизатор для питания, например, двигателя, он будет действовать как «резистор». Предположим, у нас есть источник питания, который дает нам 10 В, мы хотели бы использовать его для питания двигателя, которому требуется 5 В. Для этой цели (потому что мы еще не узнали о лучших методах), мы могли бы использовать линейный стабилизатор.

Распределение напряжения при питании двигателя от стабилизатора
Распределение напряжения при питании двигателя от стабилизатора

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

Читать также:  Фильтр Баттерворта

Связь двигателя со стабилизатором
Схема связи двигателя со стабилизатором

Мощность выражается как произведение протекающего тока и накопленного напряжения, поэтому давайте посчитаем пример баланса. Пусть наш мотор потребляет 200 мА тока. Затем рассчитываем мощность, потребляемую двигателем, следующим образом:

P мот = I ⋅ U мот = 0,2 A ⋅ 5 В = 1 Вт

Посчитаем, какая мощность потребляется от источника питания:

P бат = I ⋅ U бат = 0,2 А ⋅ 10 В = 2 Вт

Как мы видим, в распоряжении двигателя половина мощности, получаемой от аккумуляторной батареи. Остальное теряется в виде тепла, вот почему LM7805 нагревается, а батарея быстро разряжается. Конечно, настоящий двигатель может потреблять больше электроэнергии, но тогда потеря мощности будет настолько велика, что наш LM7805 придется охлаждать жидким азотом для его правильной работы…

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

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

Питание через импульсный стабилизатор
Питание через импульсный стабилизатор от источника напряжением 10 В

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

При соответствующей частоте и наполнении сигнала (как показано на диаграмме выше) к нашему двигателю будет поступать среднее напряжение 5 В. Работа импульсных стабилизаторов и, в частности, импульсных преобразователей будет обсуждаться в отдельной статье. А пока достаточно вспомнить, что замена линейного стабилизатора на импульсный позволяет существенно повысить КПД схемы.

В обсуждаемом примере, линейный стабилизатор обеспечит реальный КПД ниже 50%, в то время как использование импульсного стабилизатора позволит достичь КПД, близкого к 100%.

Питание двигателей от ШИМ

Создание импульсного источника питания и даже использование импульсных стабилизаторов — сложная задача. В простейшем случае, необходимо использовать интегральную схему и ряд вспомогательных компонентов (диоды, транзисторы, катушки и т.д.).

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

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

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

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

Драйверы двигателей постоянного тока
Примеры драйверов двигателей постоянного тока

Что меняет частоту сигнала ШИМ?

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

Нет, потому что:

  1. каждое переключение порождает потери,
  2. некоторые потребители электроэнергии плохо реагируют на слишком высокую частоту.

К сожалению, первый пункт применим всегда. Это связано с тем, что переключение (т.е. выключение и включение) происходит не сразу. Ограничением являются свойства самих транзисторов, используемые для управления источником питания приемника.

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

Время, которое должно пройти во время изменения напряжения, не равно нулю. Ход спусков может быть самым разным. Чаще всего он напоминает прямую линию. Однако более внимательный анализ покажет наличие округлых фрагментов у основания и вершины такого «прямоугольника».

Напряжение, которым питается наш образец приемника, мы обозначили зеленым цветом. Здесь мы предположили, что наклоны линейные, т.е. форма импульса напряжения трапециевидная. Эта ситуация определенно преувеличена (длительное время переключения по сравнению со всем периодом), но она хорошо иллюстрирует данную картину.

Читать также:  Резисторы в цепях постоянного тока

Внешний вид прямоугольного сигнала
Внешний вид прямоугольного сигнала, который лучше отражает реальный сигнал
Фактически, прямоугольный сигнал может быть еще более искаженным. Однако на данный момент, наиболее интересным является время нарастания и спада сигнала.

Здесь стоит отметить, что каждая точка наклона напоминает ситуацию с ресивером и линейным стабилизатором — напряжение, которое не складывается на двигателе в данный момент, должно прикладываться к стабилизатору, создавая таким образом потери.

Здесь точно также, за исключением того, что распределение этих напряжений непостоянно (меняется при переключении). Красные треугольники показывают потери в результате того, что сумма напряжений на ключе и приемнике всегда должна быть равна напряжению питания.

Завышенные коммутационные потери
Завышенные коммутационные потери (отмечены красным)

Один период прямоугольного сигнала в секунду требует две операции переключения (включения и выключения). Десять периодов, уже требуют двадцать переключений в секунду. Тысяча периодов — две тысячи и т.д.

Взаимосвязь интуитивно понятна: чем чаще приходится переключаться, тем больше потери.

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

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

Как выбрать частоту?

Прежде всего, мы должны научиться искать нужную документацию об элементах и находить правильные решения. Если наш проект основан на интегральной схеме или готовом контроллере, то частота ШИМ, или хотя бы ее диапазон, часто навязывается (предлагается) производителем. Например, для сервоприводов нам нужно 20 мс, что соответствует частоте 50 Гц.

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

Выход за пределы акустической частоты снижает этот неприятный эффект.

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

ШИМ на практике

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

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

Сигнал ШИМ, отображаемый на осциллографе

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

Здесь (опять же) на помощь приходит осциллограф, то есть измерительный прибор, позволяющий визуализировать изменения напряжения во времени. Пример сигнала ШИМ, отображаемого осциллографом, показан ниже. Вы можете увидеть сигнал с частотой 20,2 кГц, где высокое состояние длится 14,6 мкс, а низкое состояние — 34,8 мкс. Это означает, что период сигнала составляет 49,4 мкс, а его рабочий цикл составляет 14,6 / 49,4, т.е. ~ 30%.

Конкретные параметры сигнала измеряются осциллографом и отображаются прямо на экране.
Измеренный сигнал ШИМ
Пример измеренного осциллографом сигнала ШИМ

Вывод

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

С Уважением, МониторБанк

Добавить комментарий