Оглавление
Формирование аналогового сигнала
AnalogRead – это функция, которая используется для считывания аналоговых значений из аналоговых контактов ШИМа на Ардуино. Плата Arduino UNO имеет 6-канальный 10-битный аналого-цифровой преобразователь (АЦП). Это означает, что АЦП в Arduino UNO будет отображать входные напряжения от 0 до 5 В в целое значение от 0 до 1023.
Следовательно, функция analogRead возвращает любое значение от 0 до 1023. Синтаксис функции analogRead – analogRead (аналоговый вывод no).
Поскольку мы считываем аналоговые напряжения от потенциометра на выводе A0, нам нужно написать analogRead (A0) в эскизе. Когда он возвращает целочисленное значение, с ним создается временная переменная целочисленного типа данных. Следующая функция – analogWrite. Это функция, которая используется для установки рабочего цикла сигнала ШИМ для любого заданного штыря ШИМ.
Синтаксис функции analogWrite – analogWrite (вывод PWM no, value).
Значение указывает рабочий цикл и должно быть значением от 0 (0 В) до 255 (5 В).
Перейдем к фактическому эскизу схемы управления яркостью светодиода. Окончательный эскиз показан на следующем рисунке.
Из приведенного выше эскиза мы можем легко понять, что значение, возвращаемое функцией analogRead, сохраняется в переменной temp. Это значение будет использоваться для управления рабочим циклом сигнала ШИМ с помощью функции analogWrite.
Но диапазон значений, принимаемых функцией analogWrite, находится в диапазоне от 0 до 255. Следовательно, нам нужно выполнить некоторые математические вычисления, чтобы поместить подходящее значение в функцию analogWrite.
Наконец, вычисленное значение помещается в функцию analogWrite вместе с выводом PWM для получения сигнала PWM.
Когда схема построена, и эскиз загружен в 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); // задержка для большей видимости эффекта }
Принцип работы ШИМ контроллера
Задача ШИМ контроллера состоит в управлении силовым ключом за счёт изменения управляющих импульсов. Работая в ключевом режиме, транзистор находится в одном из двух состояний (полностью открыт, полностью закрыт). В закрытом состоянии ток через p-n-переход не превышает несколько мкА, а значит, мощность рассеивания стремится к нулю. В открытом состоянии, несмотря на большой ток, сопротивление p-n-перехода чрезмерно мало, что также приводит к незначительным тепловым потерям. Наибольшее количество тепла выделяется в момент перехода из одного состояния в другое. Но за счёт малого времени переходного процесса по сравнению с частотой модуляции, мощность потерь при переключении незначительна.
Широтно-импульсная модуляция разделяется на два вида: аналоговая и цифровая. Каждый из видов имеет свои преимущества и схемотехнически может реализовываться разными способами.
Аналоговая ШИМ
Принцип действия аналогового ШИ-модулятора основан на сравнении двух сигналов, частота которых отличается на несколько порядков. Элементом сравнения выступает операционный усилитель (компаратор). На один из его входов подают пилообразное напряжение высокой постоянной частоты, а на другой – низкочастотное модулирующее напряжение с переменной амплитудой. Компаратор сравнивает оба значения и на выходе формирует прямоугольные импульсы, длительность которых определяется текущим значением модулирующего сигнала. При этом частота ШИМ равна частоте сигнала пилообразной формы.
Цифровая ШИМ
Широтно-импульсная модуляция в цифровой интерпретации является одной из многочисленных функций микроконтроллера (МК). Оперируя исключительно цифровыми данными, МК может формировать на своих выходах либо высокий (100%), либо низкий (0%) уровень напряжения. Однако в большинстве случаев для эффективного управления нагрузкой напряжение на выходе МК необходимо изменять. Например, регулировка скорости вращения двигателя, изменение яркости светодиода. Что делать, чтобы получить на выходе микроконтроллера любое значение напряжения в диапазоне от 0 до 100%?
Вопрос решается применением метода широтно-импульсной модуляции и, используя явление передискретизации, когда заданная частота переключения в несколько раз превышает реакцию управляемого устройства
Изменяя скважность импульсов, меняется среднее значение выходного напряжения. Как правило, весь процесс происходит на частоте в десятки-сотни кГц, что позволяет добиться плавной регулировки
Технически это реализуется с помощью ШИМ-контроллера – специализированной микросхемы, которая является «сердцем» любой цифровой системы управления. Активное использование контроллеров на основе ШИМ обусловлено их неоспоримыми преимуществами:
- высокой эффективности преобразования сигнала;
- стабильность работы;
- экономии энергии, потребляемой нагрузкой;
- низкой стоимости;
- высокой надёжности всего устройства.
Получить на выводах микроконтроллера ШИМ сигнал можно двумя способами: аппаратно и программно. В каждом МК имеется встроенный таймер, который способен генерировать ШИМ импульсы на определённых выводах. Так достигается аппаратная реализация. Получение ШИМ сигнала с помощью программных команд имеет больше возможностей в плане разрешающей способности и позволяет задействовать большее количество выводов. Однако программный способ ведёт к высокой загрузке МК и занимает много памяти.
Примечательно, что в цифровой ШИМ количество импульсов за период может быть различным, а сами импульсы могут быть расположены в любой части периода. Уровень выходного сигнала определяется суммарной длительностью всех импульсов за период. При этом следует понимать, что каждый дополнительный импульс – это переход силового транзистора из открытого состояния в закрытое, что ведёт к росту потерь во время переключений.
Таймеры-счетчики
Таймером называется средство микропроцессора, служащее для измерения времени и реализации задержек. Основой таймера служит суммирующий счетчик, который считает количество импульсов генератора тактовой частоты.
Для таймера могут быть указаны:
- разрядость таймера;
- коэффициент предварительного деления;
- диапазон изменения счетного регистра;
- режим работы.
Разрядность таймера представляет собой разрядность двоичного счетчика, используемого для его реализации и определяет верхнюю допустимую границу счетного регистра. Например, для 8-разрядного таймера верхняя граница счетного регистра будет 2 8 -1 = 255.
Предварительный делитель – делитель частоты тактового сигнала, работающий как один или несколько последовательно соединенных T-триггеров. Таймер изменяет свое значение на 1 каждые n сигналов тактового импульса. n называют коэффициентом предварительного деления .
Зная частоту тактового генератора fosc и коэффициент предварительного деления Kpre, легко определить частоту таймера по формуле:
Время одного тика таймера соответственно будет
Полное время счета таймера (время перебора всех допустимых значений двоичного счетчика) определится как
Например, если требуется реализовать задержку 1с на 8-разрядном таймере с коэффициентом предварительного деления Kpre=1 и тактовой частотой fosc=8 МГц, имеем
tic = 0,125 мкс; Tcount = 0,125*2 8 = 32 мкс 1с/32мкс = 31250 повторений
Широтно-импульсная модуляция
Широтно-импульсная модуляция (ШИМ) – импульсный сигнал постоянной частоты и переменной скважности. Скважность есть отношения периода следования импульса к длительности импульса
С помощью задания скважности (длительности импульсов) можно менять среднее напряжение на выходе ШИМ. Обратная величина, то есть отношение длительности импульса к периоду, называется коэффициентом заполнения .
Разрядностью ШИМ называется разрядность таймера, используемого для формирования ШИМ-сигнала. Существуют два основных режима работы ШИМ:
- быстрый ШИМ;
- фазовый ШИМ.
Быстрый ШИМ
Период ШИМ определяется максимальным значением, до которого считает счетчик. В этот момент ШИМ-сигнал устанавливается в «1». При достижении счетчиком значения, поданного на второй вход цифрового компаратора, осуществляется сброс выходного ШИМ-сигнала.
Фазовый ШИМ
В данном режиме счетчик работает как суммирующий и считает от 0 до максимального значения, а при достижении максимального значения работает как вычитающий, считая до 0.
При совпадении значения счетчика с некоторым установленным значением, происходит переключение выхода ШИМ.
Частотно-импульсная модуляция — сигнал переменной частоты и постоянной скважности, равной 2. При таком виде модуляции изменяется период сигнала, а длительность импульса всегда составляет половину периода
Импульсные источники питания
Импульсные источники питания (ИИП) также могут использовать ШИМ, хотя существуют и другие методы. Добавление схем, которые используют накопленную энергию в катушках индуктивности и конденсаторах, после основных переключающих компонентов может значительно повысить эффективность этих устройств, в некоторых случаях превышая 90%. Ниже приведен пример такой схемы.
Рисунок 5 – Пример импульсного источника питания, использующего ШИМ
Эффективность в этом случае измеряется как мощность. Если у вас есть импульсный источник питания с КПД 90%, и он преобразует 12 В постоянного напряжения в 5 В постоянного напряжения с током 10 ампер, то на стороне 12 В он будет потреблять ток примерно 4,6 А. 10% (5 Вт) будут выделяться в виде тепла. Будучи немного шумнее, этот тип стабилизаторов будет работать намного холоднее, чем его линейный аналог.
Причины и области применения ШИМ
Принцип широтно-импульсной модуляции используется в регуляторах частоты вращения мощных асинхронных двигателей. В этом случае модулирующий сигнал регулируемой частоты (однофазный или трехфазный) формируется маломощным генератором синусоиды и накладывается на несущую аналоговым способом. На выходе получается ШИМ-сигнал, который подается на ключи потребной мощности. Дальше можно пропустить получившуюся последовательность импульсов через фильтр низкой частоты, например через простую RC-цепочку, и выделить исходную синусоиду. Или можно обойтись без нее – фильтрация произойдет естественным образом за счёт инерции двигателя. Очевидно, что чем выше частота несущей, тем больше форма выходного сигнала близка к исходной синусоиде.
Возникает естественный вопрос – а почему нельзя усилить сигнал генератора сразу, например, применением мощных транзисторов? Потому что регулирующий элемент, работающий в линейном режиме, будет перераспределять мощность между нагрузкой и ключом. При этом на ключевом элементе впустую рассеивается значительная мощность. Если же мощный регулирующий элемент работает в ключевом режиме (тринистор, симистор, RGBT-транзистор), то мощность распределяется во времени. Потери будут намного ниже, а КПД – намного выше.
В цифровой технике особой альтернативы широтно-импульсному регулированию нет. Амплитуда сигнала там постоянна, менять напряжение и ток можно лишь промодулировав несущую по ширине импульса и впоследствии усреднив её. Поэтому ШИМ применяют для регулирования напряжения и тока на тех объектах, которые могут усреднять импульсный сигнал. Усреднение происходит разными способами:
- За счет инерции нагрузки. Так, тепловая инерция термоэлектронагревателей и ламп накаливания позволяет объектам регулирования заметно не остывать в паузах между импульсами.
- За счёт инерции восприятия. Светодиод успевает погаснуть от импульса к импульсу, но человеческий глаз этого не замечает и воспринимает как постоянное свечение с различной интенсивностью. На этом принципе построено управление яркостью точек LED-мониторов. Но незаметное мигание с частотой несколько сот герц все же присутствует и служит причиной усталости глаз.
- За счет механической инерции. Это свойство используется при управлении коллекторными двигателями постоянного тока. При правильно выбранной частоте регулирования двигатель не успевает затормозиться в бестоковых паузах.
Поэтому ШИМ применяют там, где решающую роль играет среднее значение напряжения или тока. Кроме упомянутых распространенных случаев, методом PWM регулируют средний ток в сварочных аппаратах и зарядных устройствах для аккумуляторных батарей и т.д.
Если естественное усреднение невозможно, во многих случаях эту роль на себя может взять уже упомянутый фильтр низкой частоты (ФНЧ) в виде RC-цепочки. Для практических целей этого достаточно, но надо понимать, что без искажений выделить исходный сигнал из ШИМ с помощью ФНЧ невозможно. Ведь спектр PWM содержит бесконечно большое количество гармоник, которые неизбежно попадут в полосу пропускания фильтра. Поэтому не стоит строить иллюзий по поводу формы восстановленной синусоиды.
Очень эффективно и эффектно управление методом ШИМ RGB-светодиодом. Этот прибор имеет три p-n перехода – красный, синий, зеленый. Изменяя раздельно яркость свечения каждого канала, можно получить практически любой цвет свечения LED (за исключением чистого белого). Возможности по созданию световых эффектов с помощью PWM безграничны.
Наиболее употребительная сфера применения цифрового сигнала, промодулированного по длительности импульса – регулирование среднего тока или напряжения, протекающего через нагрузку. Но возможно и нестандартное использование этого вида модуляции. Все зависит от фантазии разработчика.
Что такое импульсный блок питания и где применяется
Что такое аттенюатор, принцип его работы и где применяется
Что такое частотный преобразователь, основные виды и какой принцип работы
Преобразователи напряжения с 12 на 220 вольт
Что такое диодный мост, принцип его работы и схема подключения
Что такое триггер, для чего он нужен, их классификация и принцип работы
Широтно-импульсная модуляция (ШИМ). Аналоговая и цифровая
Принцип ШИМ – широтно-импульсная модуляция заключается в изменении ширины импульса при постоянстве частоты следования импульса. Амплитуда импульсов при этом неизменна.
Широтно-импульсное регулирование находит применение там, где требуется регулировать подаваемую к нагрузке мощность. Например, в схемах управления электродвигателями постоянного тока, в импульсных преобразователях, для регулирования яркости светодиодных светильников, экранов ЖК-мониторов, дисплеев в смартфонах и планшетах и т.п.
Большинство вторичных источников питания электронных устройств в настоящее время строятся на основе импульсных преобразователей, применяется широтно-импульсная модуляция и в усилителях низкой (звуковой) частоты класса D, сварочных аппаратах, устройствах зарядки автомобильных аккумуляторов, инверторах и пр. ШИМ позволяет повысить коэффициент полезного действия (КПД) вторичных источников питания в сравнении с низким КПД аналоговых устройств.
Широтно-импульсная модуляция бывает аналоговой и цифровой.
Аналоговая широтно-импульсная модуляция
Как уже упоминалось выше, частота сигнала и его амплитуда при ШИМ всегда постоянны. Один из важнейших параметров сигнала ШИМ – это коэффициент заполнения, равный отношению длительности импульса t к периоду импульса T. D = t/T. Так, если имеем сигнал ШИМ с длительностью импульса 300 мкс и периодом импульса 1000 мкс, коэффициент заполнения составит 300/1000 = 0,3. Коэффициент заполнения также выражается в процентах, для чего коэффициент заполнения умножается на 100%. По примеру выше процентный коэффициент заполнения составляет 0,3 х 100% = 30%.
Скважность импульса – это отношение периода импульсов к их длительности, т.е. величина, обратная коэффициенту заполнения
S = T/t.
Частота сигнала определяется как величина, обратная периоду импульса, и представляет собой количество полных импульсов за 1 секунду. Для примера выше при периоде 1000 мкс = 0,001 с, частота составляет F = 1/0,001 – 1000 (Гц).
Сигнал ШИМ формируется микроконтроллером или аналоговой схемой. Этот сигнал обычно управляет мощной нагрузкой, подключаемой к источнику питания через ключевую схему на биполярном или полевом транзисторе. В ключевом режиме полупроводниковый прибор либо разомкнут, либо замкнут, промежуточное состояние исключается. В обоих случаях на ключе рассеивается ничтожная тепловая мощность. Поскольку эта мощность равна произведению тока через ключ на падение напряжения на нем, а в первом случае к нулю близок ток через ключ, а во втором напряжение.
В переходных состояниях на ключе присутствует значительное напряжение с прохождением значительного тока, т.е. значительна и рассеиваемая тепловая мощность. Поэтому в качестве ключа необходимо применение малоинерционных полупроводниковых приборов с быстрым временем переключения, порядка десятков наносекунд.
Если ключевая схема управляет светодиодом, то при малой частоте сигнала светодиод будет мигать в такт с изменением напряжения сигнала ШИМ. При частоте сигнала выше 50 Гц мигания сливаются вследствие инерции человеческого зрения. Общая яркость свечения светодиода начинает зависеть от коэффициента заполнения – чем ниже коэффициент заполнения, тем слабее светится светодиод.
При управлении посредством ШИМ скорости вращения двигателя постоянного тока частота ШИМ должна быть очень высокой, и лежать за пределами слышимых звуковых частот, т.е. превышать 15-20 кГц, в противном случае двигатель будет «звучать», издавая раздражающий слух писк с частотой ШИМ. От частоты зависит и стабильность работы двигателя. Низкочастотный сигнал ШИМ с невысоким коэффициентом заполнения приведет к нестабильной работе двигателя и даже возможной его остановке.
Тем самым, при управлении двигателем желательно повышать частоту сигнала ШИМ, но и здесь существует предел, определяемый инерционными свойствами полупроводникового ключа. Если ключ будет переключаться с запаздываниями, схема управления начнет работать с ошибками. Чтобы избежать потерь энергии и добиться высокого коэффициента полезного действия импульсного преобразователя, полупроводниковый ключ должен обладать высоким быстродействием и низким сопротивлением проводимости.
H-мосты
ШИМ часто используется в сочетании с H-мостом. Эта схема названа так, потому что она напоминает букву H и позволяет удвоить эффективное напряжение на нагрузке, поскольку источник питания можно переключать в обе стороны от нагрузки. В случае индуктивных нагрузок, таких как двигатели, для подавления индуктивных пиков, способных повредить транзисторы, используются диоды. Индуктивность в двигателе также имеет тенденцию устранять высокочастотную составляющую сигнала. Данная схема также может использоваться с динамиками для аудиоусилителей класса D.
Несмотря на простоту, схема H-моста имеет один серьезный недостаток, при переходе между полевыми транзисторами возможен одновременный запуск обоих транзисторов сверху и снизу моста, что позволит полностью нагрузить блок питания. Это условие называется прострел (shoot through) и может возникнуть с любым типом транзисторов, используемых в H-мосте. Если источник питания достаточно мощный, транзисторы выйдут из строя. Поэтому перед транзисторами используются драйверы, которые запирают один транзистор перед тем, как открыть другой.
Рисунок 4 – Упрощенный H-мост
От коэффициента заполнения к аналоговому напряжению
Номинальное напряжение ЦАП, наблюдаемое на выходе фильтра нижних частот, определяется только двумя параметрами: коэффициентом заполнения и напряжением высокого логического уровня ШИМ сигнала; на схеме это напряжение высокого логического уровня обозначено буквой A как «амплитуда». Связь между коэффициентом заполнения, амплитудой и номинальным напряжением ЦАП довольно интуитивно понятна: в частотной области фильтр нижних частот подавляет высокочастотные составляющие входного сигнала. Эквивалентом этого эффекта во временной области является сглаживание или усреднение – таким образом, посредством фильтрации нижних частот ШИМ сигнала мы извлекаем его среднее значение. Предположим, что коэффициент заполнения составляет 50% (т.е. длительность активного состояния равна длительности неактивного состояния), и мы работаем с логикой 3,3 В. Вы, вероятно, можете догадаться, какое будет номинальное напряжение ЦАП: 1,65 В, потому что сигнал половину своего времени равен 3,3 В и половину 0 В, и, таким образом, сглаженная версия окажется прямо посередине. Мы можем обобщить это следующим образом:
\
Откуда берётся ШИМ
Вариант 1 — аналоговый
ШИМ сигнал создаётся специально сконструированными устройствами – генераторами ШИМ сигнала или генераторами прямоугольных импульсов. Они могут быть собраны как на аналоговой базе, так и на основе микроконтроллеров, как в виде схемы из нескольких транзисторов, так и в виде интегральной микросхемы.
Самый простой вариант это микросхема NE555, собирается всё по схеме:
Схема ШИМ генератора на NE555
Но если лень разбираться и паять, то китайцы за нас всё уже давно сделали.
ШИМ генератор на NE555
Стоит $0,5, работает стабильно при питании от 5 до 16 вольт
Выдаёт ШИМ сигнал амплитудой в 5 вольт, скважность можно менять подстроечным резистором (вон та синяя штуковина с вырезом под отвертку). При желании можно заменить подстроечный резистор на переменный и получим удобную ручку регулировки
Вариант 2 – цифровой
Более сложный для новичка – использование микроконтроллера, но вместе с тем более интересный и дающий широкие возможности. Звучит страшно, но самом деле реализуется довольно просто.
В качестве микроконтроллера удобнее всего взять отладочную плату ардуино.
Как с ней работать написано вот здесь. Подключаем ардуинку к компьютеру и заливаем в неё вот такой наисложнейший код:
void setup() {
pinMode(3,OUTPUT); // опреднляем пин D3 как выход
}
void loop() {
int duty = 30; // определяем скважность равной 30%
int value = 255/10*duty; // переводим значение скважности в 8 битный формат
analogWrite(3, value); // выводим ШИМ значением value на пин D3
1
2
3
4
5
6
7
voidsetup(){
pinMode(3,OUTPUT);// опреднляем пин D3 как выход
}
voidloop(){
intduty=30;// определяем скважность равной 30%
intvalue=25510*duty;// переводим значение скважности в 8 битный формат
analogWrite(3,value);// выводим ШИМ значением value на пин D3
Далее цепляемся осциллографом к пину D3 и видим:
ШИМ скважность 30%
Сигнал частотой (Freq) -526 Гц, амплитудой (Vmax)- 5 вольт и скважностью (duty) – 30.9 %. Меняем скважность в коде — меняется и скважность на выходе
Добавляем датчик температуры или освещённости, прописываем зависимость скважности на выходе от показаний датчиков и — готова регулировка с обратной связью
Меняем скважность в коде — меняется и скважность на выходе. Добавляем датчик температуры или освещённости, прописываем зависимость скважности на выходе от показаний датчиков и — готова регулировка с обратной связью