Виды шим. Что такое шим контроллер, как он устроен и работает, виды и схемы

💖 Нравится? Поделись с друзьями ссылкой

Например);

  • резистор номиналом 190…240 Ом (вот отличный набор резисторов самых распространённых номиналов);
  • персональный компьютер со средой разработки Arduino IDE.
  • Инструкция по использованию ШИМ в Arduino

    1 Общие сведения о широтно-импульсной модуляции

    Цифровые выводы Arduino могут выдавать только два значения: логический 0 (LOW, низкий уровень) и логическую 1 (HIGH, высокий). На то они и цифровые. Но есть у Ардуино «особые» выводы, которые обозначаются PWM . Их иногда обозначают волнистой чертой "~" или обводят кружочками или ещё как-то выделяют среди прочих. PWM расшифровывается как Pulse-width modulation или широтно-импульсная модуляция , ШИМ .

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

    Если скважность равняется 100%, то всё время на цифровом выходе Arduino будет напряжение логическая "1" или 5 вольт. Если задать скважность 50%, то половину времени на выходе будет логическая "1", а половину - логический "0", и среднее напряжение будет равняться 2,5 вольтам. Ну и так далее.


    В программе скважность задаётся не в процентах, а числом от 0 до 255. Например, команда analogWrite(10, 64) скажет микроконтроллеру подать на цифровой PWM выход №10 сигнал со скважностью 25%.

    Выводы Arduino с функцией широтно-импульсной модуляции работают на частоте около 500 Гц. Значит, период следования импульсов - около 2 миллисекунд, что и отмеряют зелёные вертикальные штрихи на рисунке.

    Получается, что мы можем сымитировать аналоговый сигнал на цифровом выходе! Интересно, правда?!

    Как же мы можем использовать ШИМ? Применений масса! Например, управлять яркостью светодиода, скоростью вращения двигателя, током транзистора, звуком из пьезоизлучателя и т.д.…

    2 Схема для демонстрации широтно-импульсной модуляции в Arduino

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


    3 Пример скетча с ШИМ

    Откроем из примеров скетч "Fade": Файл Образцы 01.Basics Fade .


    Немного изменим его и загрузим в память Arduino.

    Int ledPin = 3; // объявляем пин, управляющий светодиодом int brightness = 0; // переменная для задания яркости int fadeAmount = 5; // шаг изменения яркости void setup() { pinMode(ledPin, OUTPUT); } void loop() { analogWrite(ledPin, brightness); // устанавливаем яркость brightness на выводе ledPin brightness += fadeAmount; // изменяем значение яркости /* при достижении границ 0 или 255 меняем направление изменения яркости */ if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount; // изменяем знак шага } delay(30); // задержка для большей видимости эффекта }

    4 Управление яркостью светодиода с помощью PWM и Arduino

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


    Посмотрите приложенные видео, где наглядно показано изменение яркости светодиода, на подключённом осциллографе видно, как при этом меняется сигнал с Arduino.

    ШИМ или PWM (широтно-импульсная модуляция, по-английски pulse-width modulation) – это способ управления подачей мощности к нагрузке. Управление заключается в изменении длительности импульса при постоянной частоте следования импульсов. Широтно-импульсная модуляция бывает аналоговой, цифровой, двоичной и троичной.

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

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

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

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

    В разомкнутом же состоянии проводимость транзистора близка к нулю, и ток через него практически не течет. Это позволяет создавать компактные преобразователи с высокой эффективностью, то есть с небольшими тепловыми потерями. А резонансные преобразователи с переключением в нуле тока ZCS (zero-current-switching) позволяют свести эти потери к минимуму.


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

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

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


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

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

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

    Получаемые импульсы переменной ширины будут кратны периоду тактования, а частота будет равна 1/2NT, где T – период тактования, N – количество тактов. Здесь достижима более низкая частота по отношению к частоте тактования. Описанная схема цифровой генерации - это однобитная или двухуровневая ШИМ, импульсно-кодированная модуляция ИКМ.

    Эта двухуровневая импульсно-кодированная модуляция представляет собой по сути серию импульсов с частотой 1/T, и шириной Т или 0. Для усреднения за больший промежуток времени применяется передискретизация. Высокого качества ШИМ позволяет достичь однобитная импульсно-плотностная модуляция (pulse-density-modulation), называемая также импульсно-частотной модуляцией.

    При цифровой широтно-импульсной модуляции прямоугольные подимпульсы, которыми оказывается заполнен период, могут приходиться на любое место в периоде, и тогда на среднем за период значении сигнала сказывается только их количество. Так, если разделить период на 8 частей, то комбинации импульсов 11001100, 11110000, 11000101, 10101010 и т. д. дадут одинаковое среднее значение за период, тем не менее, отдельно стоящие единицы утяжеляют режим работы ключевого транзистора.

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

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

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


    Отношение полной длительности периода импульса ко времени включения (положительной части импульса) называется скважностью импульса. Так, если время включения составляет 10 мкс, а период длится 100 мкс, то при частоте в 10 кГц, скважность будет равна 10, и пишут, что S = 10. Величина обратная скважности называется коэффициентом заполнения импульса, по-английски Duty cycle, или сокращенно DC.

    Так, для приведенного примера DC = 0.1, поскольку 10/100 = 0.1. При широтно-импульсной модуляции, регулируя скважность импульса, то есть варьируя DC, добиваются требуемого среднего значения на выходе электронного или другого электротехнического устройства, например двигателя.

    Дорогой Бобот, не мог бы ты немного побольше рассказать об импульсах?

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

    Электрический импульс - это всплеск напряжения или тока в определённом и конечном промежутке времени.

    Импульс всегда имеет начало (передний фронт) и конец (спад).
    Ты уже наверняка знаешь, что в цифровой электронике все сигналы могут быть представлены всего двумя уровнями напряжения: "логической единицей" и "логическим нулём". Это всего лишь условные величины напряжения. "Логической единице" приписывается высокий уровень напряжения, обычно около 2-3 вольт, "логическим нулём" считается близкое к нулю напряжение. Цифровые импульсы графически изображаются прямоугольными или трапециевидными по форме:

    Главной величиной одиночного импульса является его длина. Длина импульса - это отрезок времени, в течение которого рассматриваемый логический уровень имеет одно устойчивое состояние. На рисунке латинской буквой t отмечена длина импульса высокого уровня, то есть логической "1". Длина импульса измеряется в секундах, но чаще в миллисекундах (мс), микросекундах (мкс) и даже наносекундах (нс). Одна наносекунда - это очень короткий отрезок времени!
    Запомни: 1 мс = 0,001 сек.
    1 мкс = 0,000001 сек
    1 нс = 0,000000001 сек

    Применяются также англоязычные сокращения: ms - миллисекунда, μs - микросекунда, ns - наносекунда.

    За одну наносекунду я даже пикнуть не успею!
    Скажи, Бобот, а что произойдёт, если импульсов будет много?

    Хороший вопрос, Бибот! Чем больше импульсов, тем больше информации можно ими передать. У множества импульсов появляется много характеристик. Самая простая - частота следования импульсов.
    Частота следования импульсов - это количество полных импульсов в единицу времени. За единицу времени принято брать одну секунду. Единицей измерения частоты является герц, по имени немецкого физика Генриха Герца . Один герц - это регистрация одного полного импульса за одну секунду. Если произойдёт тысяча колебаний в секунду будет 1000 герц, или сокращённо 1000 Гц, что равно 1 килогерцу, 1 кГц. Можно встретить и англоязычное сокращение: Hz - Гц. Частота обозначается буквой F .

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


    Период следования импульсов напрямую связан с частотой импульсной последовательности, и его можно вычислить по формуле: T=1/F
    Если длина импульса t точно равна половине периода T , то такой сигнал часто называют "меандр ".

    Скважностью импульсов называется отношение периода следования импульсов к их длительности и обозначается буквой S: S=T/t Скважность - безразмерная величина и не имеет единиц измерения, но может быть выражена в процентах. Часто в англоязычных текстах встречается термин Duty cycle, это так называемый коэффициент заполнения.
    Коэффициент заполнения D является величиной, обратной скважности. Коэффициент заполнения обычно выражается в процентах и вычисляется по формуле: D=1/S

    Дорогой Бобот, так много разного и интересного у простых импульсов! Но потихоньку я уже начинаю путаться.

    Дружище, Бибот, это ты верно заметил, импульсы - не так уж и просты! Но осталось совсем чуть-чуть.

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

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


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

    Перечисленные возможности передачи информации с помощью импульсов могут быть использованы как сами по себе раздельно, так и в комбинации между собой.
    Существуют также множество стандартов передачи информации с помощью импульсов, например I2C, SPI, CAN, USB, LPT.

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

    Так как для меня самым важным было применение ШИМ именно для управления яркостью светодиодов, то именно их я и буду использовать в примерах. В качестве микроконтроллера будем использовать горячо любимый 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 мФ и более, что позволяет повысить качество стабилизации выходного значения.
    • Ограничитель тока срабатывает при значительном превышении напряжения на соответствующем выводе над пороговым. В этом случае происходит автоматическое отключение силовых ключей.
    • Мягкий старт используется для постепенного увеличения величины импульсов на выходе до расчетных показателей. Наличие емкости между соответствующим выводом и общим проводом приводит к ее постепенной зарядке. В результате каждый импульс становится шире вплоть до достижения требуемой величины.

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

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

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

    Рассказать друзьям