Шима шия

Формирование аналогового сигнала

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-транзистор), то мощность распределяется во времени. Потери будут намного ниже, а КПД – намного выше.

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

  1. За счет инерции нагрузки. Так, тепловая инерция термоэлектронагревателей и ламп накаливания позволяет объектам регулирования заметно не остывать в паузах между импульсами.
  2. За счёт инерции восприятия. Светодиод успевает погаснуть от импульса к импульсу, но человеческий глаз этого не замечает и воспринимает как постоянное свечение с различной интенсивностью. На этом принципе построено управление яркостью точек LED-мониторов. Но незаметное мигание с частотой несколько сот герц все же присутствует и служит причиной усталости глаз.
  3. За счет механической инерции. Это свойство используется при управлении коллекторными двигателями постоянного тока. При правильно выбранной частоте регулирования двигатель не успевает затормозиться в бестоковых паузах.

Поэтому ШИМ применяют там, где решающую роль играет среднее значение напряжения или тока. Кроме упомянутых распространенных случаев, методом 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 %. Меняем скважность в коде — меняется и скважность на выходе

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

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