Что такое шим. Что такое ШИМ и как она используется в Arduino Широтно импульсный модулятор

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

Выходом из положения является применение широтно - импульсных схем, управляющих мощными полевыми силовыми транзисторами MOSFET . Эти транзисторы могут коммутировать очень большие токи (до 160А и более) при напряжении на затворе 12 - 15 В. Сопротивление открытого транзистора очень мало, что позволяет заметно снизить рассеиваемую мощность. Схемы управления должны обеспечивать разность напряжений между затвором и истоком не менее 12 ... 15 В, в противном случае сопротивление канала сильно увеличивается и рассеиваемая мощность значительно возрастает, что может привести перегреву транзистора и выходу его из строя. Для широтно - импульсных автомобильных низковольтных регуляторов выпускаются специализированные микросхемы, например U 6 080B ... U6084B , L9610, L9611, которые содержат узел повышения выходного напряжения до 25 -30 В при напряжении питания 7 -14 В, что позволяет включать выходной транзистор по схеме с общим стоком, чтобы можно было подключать нагрузку с общим минусом, но достать их практически невозможно. Для большинства нагрузок, которые потребляют ток не более 10А и не могут вызвать просадку бортового напряжения можно использовать простые схемы без дополнительного узла повышения напряжения.

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

В схеме можно использовать любые инвертирующие КМОП элементы, например К176ПУ2, К561ЛН1, а также любые элементы И, ИЛИ-НЕ, например К561ЛА7, К561ЛЕ5 и подобные, соответственно сгруппировав их входы. Полевой транзистор может быть любым из MOSFET , которые выдерживают максимальный ток нагрузки, но желательно использовать транзистор с как можно большим максимальным током, т.к. у него меньшее сопротивление открытого канала, что уменьшает рассеиваемую мощность и позволяет использовать радиатор меньшей площади.
Достоинство ШИМ-регулятора на микросхеме К561ЛН2 - простота и доступность элементов,
недостатки - диапазон изменения выходного напряжения чуть меньше 100% и невозможно доработать схему с целью введения дополнительных режимов, например плавного автоматического увеличения или понижения напряжения на нагрузке, т.к. регулирование производится путём изменения сопротивления переменного резистора, а не изменением уровня управляющего напряжения.

Гораздо лучшими характеристиками обладает вторая схема, но количество элементов в ней чуть больше.

Регулировка эффективного значения напряжения на нагрузке от 0 до 12 В производится изменением напряжения на управляющем входе от 8 до 12 В. Диапазон регулировки напряжения практически 100%. Максимальный ток нагрузки полностью определяется типом силового полевого транзистора и может быть очень значительным. Так как выходное напряжение пропорционально входному управляющему напряжению, схема может использоваться как составная часть системы регулирования, например системы поддержания заданной температуры, если в качестве нагрузки использовать нагреватель, а датчик температуры подключить к простейшему пропорциональному регулятору, выход которого подключается к управляющему входу устройства. Описанные устройства имеют в основе несимметричный мультивибратор, но ШИМ регулятор можно построить на микросхеме ждущего мультивибратора

Широтно-импульсная модуляция (ШИМ, английская аббревиатураPWM - Pulse-Width Modulation) - это способ кодирования аналогового сигнала путем изменения ширины (длительности) прямоугольных импульсов несущей частоты. На рис.1 представлены типичные графики ШИМ-сигнала.

Так как при ШИМ частота импульсов, а значит, и период (Т) остаются неизменными, то при уменьшении ширины импульса (t) увеличивается пауза между импульсами (рис.16) и наоборот, при расширении импульса пауза сужается (рис.1в).

Если ШИМ-сигнал пропустить через фильтр низших частот (ФНЧ), то уровень постоянного напряжения на выходе фильтра будет определяться скважностью импульсов ШИМ. Скважность Q - это отношение периода импульсов Т к их длительности t, т.е. Формула:

Величина, обратная скважности, которая также встречается в литературе, называется “коэффициентом заполнения” (К3). Назначение ФНЧ - не пропускать на выход несущую частоту ШИМ.

Сам фильтр может состоять из простейшей интегрирующей RC-цепочки или же отсутствовать вовсе, например, если нагрузка имеет достаточную инерцию.

Рис. 1. Графики работы ШИМ.

Таким образом, с помощью двух логических уровней “1 ” и “0” можно получить любое промежуточное значение аналогового сигнала. Широтно-импульсная модуляция широко используется в современной электронике, например, в импульсных источниках питания или в устройствах цифровой обработки звуковых сигналов. В описан широтно-импульсный модулятор на одной КМОП-микросхеме.

Он выполнен на основе двух логических элементов (рис.2) микросхемы К176ЛП1 (рис.За), которая называется универсальным логическим элементом (зарубежный аналог - CD4007).

Универсальность ИМС заключается в том, что она может быть использована и как три самостоятельных элемента НЕ, и как элемент ЗИЛИ-НЕ (рис.Зб), и как элемент НЕ с большим коэффициентом разветвпения (рис.Зв).

Рис. 2. Широтно-импульсный модулятор на одной КМОП-микросхеме.

Рис. 3. Структура микросхемы К176ЛП1.

Микросхема содержит шесть МОП-транзисторов, три из которых (VT1...VT3) - с п-каналом, три других (VT4... VT6)-с р-каналом. Напряжение питания подают на выводы 14 (+9 В) и 7 (общий), выводы 6, 3 и 10 - входы, остальные - выходы.

Разные по функциональному назначению логические элементы получают путем соответствующих соединений входных и выходных выводов. Модулятор (рис.2) изменяет коэффициент заполнения импульсов автогенератора в соответствии с управляющим напряжением.

Регулирование коэффициента заполнения обеспечивается шунтированием времязадающего резистора R2 сопротивлением каналов полевых транзисторов VТ1 и VТ2, входящих в состав микросхемы.

Коэффициент заполнения изменяется в пределах от 1 до 99% периода рабочей частоты. Недостатком этого генератора является ненадежный запуск при уменьшении емкости времязадающего конденсатора С1 (при увеличении частоты генерации).

Для устранения этого недостатка предлагаю выполнить широтно-импульсный модулятор на трех логических элементах (рис.4). Трехэлементный генератор запускается в любом случае, а конденсатор просто снижает его частоту. Широтно-импульсный модулятор построен на микросхеме DD2 и инверторе DD1.

Полевые транзисторы VТ1 и VТ2 из состава микросхемы подключены через диоды VD1 и VD2 параллельно резистору R2.

Рис. 4. Широтно-импульсный модулятор на трех логических элементах.

При высоком уровне на выходе генератора диод VD2 открывается, т.е. сопротивление п-канала VТ2 включается параллельно R2. Подобным образом сопротивление р-канала VТ1 включается через VD1 параллельно R2 при низком уровне на выходе генератора.

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

Увеличение управляющего напряжения, поступающего на модулятор, приводит к увеличению длительности выходных импульсов, уменьшение - наоборот. Частота колебаний остается неизменной. Данный генератор может генерировать сигнал частотой до 10 МГц.

В. Калашник, г. Воронеж. E-mail: kalaviv[a]mail.ru. РМ-07-12.

Литература:

  1. Широтно-импульсный модулятор на одной КМОП микросхеме. - Электроника, 1977, №13, С.55.
  2. Генераторы на элементах КМОП. - Схемотехника, 2007, №6, С.37.

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

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

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

Частота, это количество периодов за одну секунду. Скважность- отношение длительности импульса к длительности периода. Можно изменять и то и другое, но для управления светодиодами достаточно управлять скважностью. На картинке выше мы видим ШИМ сигнал со скважностью 50 %, так как длительность импульса (ширина импульса) ровно половина от периода. Соответственно светодиод будет ровно половину времени во включенном состоянии и половину в выключенном. Частота ШИМ очень большая и глаз не заметит мерцания светодиода из за инерционности нашего зрения, поэтому нам будет казаться, что светодиод светится на половину яркости. Если мы изменим скважность на 75%, то яркость светодиода будет на 3 четверти от полной, а график будет выглядеть так:

Получается, что мы можем регулировать яркость светодиода от 0 до 100 %. А теперь поговорим о таком параметре ШИМ, как разрешение. Разрешение- это количество градаций (шагов) регулировки скважности, мы будем рассматривать разрешение в 256 шагов.

С параметрами вроде разобрались, теперь поговорим о том, как нам получить этот самый ШИМ от микроконтроллера. Берем остро заточенный разогретый паяльник и начинаем пытать МК, одновременно подцепившись к двум его ногам осциллографом и проверяя наличие на них сигнала нужной нам скважности. В микроконтроллерах есть аппаратная поддержка ШИМ и несколько каналов для него, в нашем случае 3. За выдачу ШИМ отвечают определенные выводы МК, в нашем случае OC2, OC1A, OC1B (15,16,17 нога в DIP корпусе). Так же для этого используются таймеры микроконтроллера, в нашем случае TC1, TC2. Так как же сконфигурировать МК для выдачи сигнала необходимой скважности? Все очень просто, для начала сконфигурируем нужные нам ноги на выход:

PORTB=0x00; DDRB=0x0E; // 0b00001110

Далее начнем конфигурировать таймеры. Для таймера TC1 нам потребуются два регистра: TCCR1A и TCCR1B. Открываем даташит и читаем как настраиваются эти регистры. Я настроил его на 8 битный сигнал ШИМ, что соответствует разрешению в 256 шагов:

TCCR1A=0xA1; TCCR1B=0x09;

Для таймера TC2 мы будем использовать регистр TCCR2=0x69;. Его настройка выглядит так:

TCCR2=0x69;

Всё, таймеры сконфигурированы. Скважность будем задавать регистрами OCR1A,OCR1B, OCR2:

Зададим требуемые скважности:

OCR1A=0x32; //50 шагов OCR1B=0x6A; //106 шагов OCR2=0xF0; //240 шагов

Ну и поместим инкремент и декремент этих регистров в бесконечный цикл:

While(1) { OCR1A++; OCR1B--; OCR2++; delay_ms(50); }

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

#include "mega8.h" #include "delay.h" void main(void) { PORTB=0x00; DDRB=0x0E; // 0b00001110 TCCR1A=0xA1; TCCR1B=0x09; TCCR2=0x69; OCR1A=0x32; //50 шагов OCR1B=0x6A; //106 шагов OCR2=0xF0; //240 шагов while (1) { OCR1A++; OCR1B--; OCR2++; delay_ms(50); }; }


ШИМ регулятор предназначен для регулирования скорости вращения полярного двигателя,яркости освещения лампочки или мощностью нагревательного элемента.

Преимущества:
1 Простота изготовления
2 Доступность компонентов(стоимость не превышает 2$)
3 Широкое применение
4 Для новичков лишний раз потренироваться и порадовать себя=)

Однажды понадобился мне "девайс" для регулировки скорости вращения кулера. Для чего именно уже не помню. С начала пробовал через обычный переменный резистор, он сильно грелся и это было не приемлемо для меня. В итоге покопавшись в интернете нашел схему на мне уже знакомой микросхеме NE555. Это была схема обычного ШИМ регулятора с скважностью (длительностью) импульсов равной или меньше 50% (позже приведу графики как это работает). Схема оказалось очень простой и не требовала настройки, главное было не накосячить с подключением диодов и транзистора. Первый раз его собрал на макетной плате и испытал, все заработало с пол оборота. Позже уже развел небольшую печатную плату и аккуратнее все выглядело=) Ну теперь взглянем на саму схему!

Схема ШИМ регулятора

Из нее мы видим что это обычный генератор с регулятором скважности импульсов собранный по схеме из даташита. Резистором R1 мы и меняем эту скважность, резистор R2 служит нам защитой от КЗ, так как 4 вывод микросхемы через внутренний ключ таймера подключен на землю и при крайнем положении R1 он просто замкнет. R3 это подтягивающий резистор. С2 это задающий частоту конденсатор. Транзистор IRFZ44N - это N канальный мосфет. D3 - это защитный диод который предотвращает выхода из строя полевик при обрыве нагрузки. Теперь немного о скважности импульсов. Скважность импульса - это отношение его периода следования (повторения) к длительности импульса, то есть через определенный промежуток времени будет происходить переход от (грубо говоря) плюса к минусу, а точнее от логической единицы к логическому нулю. Так вот этот промежуток времени между импульсами и есть та самая скважность.


Скважность при среднем положении R1

Скважность при крайнем левом положении R1


Скважность при крайнем правом положении R

Ниже приведу печатные платы с расположением деталей и без них


Теперь немного о деталях и их вид. Сама микросхема выполнена в DIP-8 корпусе, конденсаторы керамические малогабаритные, резисторы на 0,125-0,25 ватт. Диоды обычные выпрямительные на 1А (самое доступное это 1N4007 их везде навалом). Так же микросхему можно устанавливать на панельку, если в будущем вы хотите ее использовать в других проектах и лишний раз не выпаивать ее. Ниже приведу фотографии деталей.



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

Схема ШИМ регулятора

Указанная схема отлично работает, прилагается.

Без переделки схемы напряжение можно поднимать до 16 вольт. Транзистор ставить в зависимости от мощности нагрузки.

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

А при необходимости, вместо составного транзистора КТ827 поставить полевой IRFZ44N, с резистором R1 - 47к. Полевик без радиатора, при нагрузке до 7 ампер, не греется.

Работа ШИМ регулятора

Таймер на микросхеме NE555 следит за напряжением на конденсаторе С1, которое снимает с вывода THR. Как только оно достигнет максимума - открывается внутренний транзистор. Который замыкает вывод DIS на землю. При этом на выходе OUT появляется логический ноль. Конденсатор начинает разряжаться через DIS и когда напряжение на нем станет равно нулю - система перекинется в противоположное состояние — на выходе 1, транзистор закрыт. Конденсатор начинает снова заряжаться и все повторяется вновь.

Заряд конденсатора С1 идет по пути: «R2->верхнее плечо R1 ->D2«, а разряд по пути: D1 -> нижнее плечо R1 -> DIS. Когда вращаем переменный резистор R1, у нас меняются соотношения сопротивлений верхнего и нижнего плеча. Что, соответственно, меняет отношение длины импульса к паузе. Частота задается в основном конденсатором С1 и еще немного зависит от величины сопротивления R1. Меняя отношение сопротивлений заряда/разряда - меняем скважность. Резистор R3 обеспечивает подтяжку выхода к высокому уровню — так так там выход с открытым коллектором. Который не способен самостоятельно выставить высокий уровень.

Диоды можно ставить любые, конденсаторы примерно такого номинала, как на схеме. Отклонения в пределах одного порядка не влияют существенно на работу устройства. На 4.7 нанофарадах, поставленных в С1, например, частота снижается до 18кГц, но ее почти не слышно.

Если после сборки схемы греется ключевой управляющий транзистор, то скорее всего он полностью не открывается. То есть на транзисторе большое падение напряжения (он частично открыт) и через него течет ток. В результате рассеивается большая мощность, на нагрев. Желательно схему параллелить по выходу конденсаторами большой емкости, иначе будет петь и плохо регулировать. Чтобы не свистел - подбирайте С1, свист часто идет от него. В общем область применения очень широкая, особенно перспективным будет её использование в качестве регулятора яркости мощных светодиодных ламп, LED лент и прожекторов, но про это в следующий раз. Статья написана при поддержке ear, ur5rnp, stalker68.