Увеличение частоты шим arduino

ШИМ контроллер: принцип работы

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

Все это позволило разработать высокоэффективный компактный широтно импульсный преобразователь, то есть с малыми теплопотерями. Резонансные преобразователи с переключением в 0 тока ZCS позволяют свести теплопотери к минимуму.

Аналоговая ШИМ

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

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

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

Цифровая ШИМ

Работая с цифровой информацией, микроконтроллер может формировать на выходах или 100% высокий или 0% низкий уровень напряжения. Но для эффективного управления нагрузкой такое напряжение на выходе нужно изменять. Например, когда осуществляется регулировка скорости вращения вала мотора или при изменении яркости светодиода.

Вопрос решают ШИМ контроллеры. То есть, 2-хуровневая импульсно-кодированная модуляция — это серия импульсов, характеризующаяся  частотой 1/T и либо шириной Т, либо шириной 0. Для их усреднения применяется передискретизация. При цифровой ШИМ прямоугольные подимпульсы, которыми и заполнен период, могут занимать любое место в периоде. Тогда на среднем значении сигнала за период сказывается лишь их количество. Так как процесс осуществляется на частоте в сотни кГц, можно добиться плавной регулировки. ШИМ контроллеры решают эту задачу.

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

Использование ШИМ-контроллеров обусловлено их следующими преимуществами:

  • стабильностью работы;
  • высокой эффективностью преобразования сигнала;
  • экономией энергии;
  • низкой стоимостью.

Получить на выводах микроконтроллера (МК) ШИМ сигнал можно:

  • аппаратным способом;
  • программным способом.

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

Скорость стабилизации напряжения

Управление с использованием широтно-импульсной модуляции напряжения

льтернативной технологией динамического управления скоростью вращения вентилятора кулера процессора является широтно-импульсная модуляция (Pulse Wide Modulation, PWM) напряжения питания вентилятора. Идея здесь тоже проста: вместо изменения амплитуды напряжения питания вентилятора напряжение подают на вентилятор импульсами определенной длительности. Амплитуда импульсов напряжения и частота их следования неизменны, и меняется только их длительность, то есть фактически вентилятор периодически включают и выключают. Подобрав частоту следования импульсов и их длительность, можно управлять скоростью вращения вентилятора. Действительно, поскольку вентилятор обладает определенной инертностью, он не может мгновенно ни раскрутиться, ни остановиться (рис. 3).

Рис. 3. Реакция вентилятора
на импульс напряжения

Если длительность импульса напряжения (Ton) меньше характерного времени раскрутки вентилятора (Ton < Tраскр), а длительность промежутка времени, в течение которого на вентилятор не подается напряжение (Toff), меньше характерного времени останова вентилятора (Toff < Tост), то при подаче на вентилятор последовательности таких импульсов он будет вращаться с некоторой средней скоростью, значение которой определяется соотношением времен Ton и Toff (рис. 4).

Рис. 4. Управление скоростью вращения вентилятора при широтно-импульсной модуляции напряжения

Отношение времени Ton к периоду следования импульсов (Ton + Toff), измеряемой в процентах, то есть

.

называется скважностью импульсов. Если, к примеру, скважность составляет 30%, то время, в течение которого на вентилятор подается напряжение, составляет 30% от периода импульса

Реализации широтно-импульсной модуляции напряжения вентилятора осуществляется с помощью PWM-контроллера на материнской плате, причем данный тип управления поддерживается только материнскими платами для процессоров Intel.

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

Упрощенная схема управления скоростью вращения кулера показана на рис. 5.

Рис. 5. Схема управления скоростью вращения вентилятора
при использовании PWM-сигнала

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

Как уже говорилось, при широтно-импульсной модуляции напряжения для изменения скорости вращения вентилятора меняется скважность импульсов, но не частота их следования. Типичная минимально возможная скважность импульсов составляет 30%, а максимально возможная  100%, что соответствует постоянному напряжению на вентиляторе

Частота следования PWM-импульсов составляет от 21 до 25 кГц (типичное значение 23 кГц), то есть в течение одной секунды вентилятор включается и отключается приблизительно 23 тыс. раз! На рис. 6 показан пример осциллограммы PWM-импульсов с частотой следования 25 кГц и скважностью 78%.

Рис. 6

Осциллограмма PWM-последовательности со скважностью 78% при частоте следования 25 кГц

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

При превышении температуры процессора порогового значения скважность импульсов начинает линейно меняться в зависимости от температуры, увеличиваясь вплоть до 100%. Соответственно и скорость вращения вентилятора, равно как и уровень создаваемого им шума, будет изменяться в зависимости от температуры процессора (рис. 7).

Рис. 7

Зависимость скважности PWM-импульсов
от температуры процессора

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

Принцип работы

Индукционный нагрев осуществляется при помощи следующих составляющих:

  • индуктора;
  • генератора;
  • нагреваемого предмета.

В качестве индуктора используется катушка, которую изготавливают из толстой медной проволоки. Посредством этой детали создается магнитное поле. При помощи генератора переменного тока вырабатывается ВЧ поток от обычной электросети 220 В и 50 Гц. Нагревательным элементом может быть любой металлический предмет, который способен поглощать тепловую энергию под воздействием магнитного поля.

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

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

Таким образом удается добиться минимальных потерь при переходе одного вида энергии в другую и при этом получить высокий КПД. Благодаря индукционному способу можно получить довольно быстрый нагрев поверхностных слоев. Например, для нагрева металлической заготовки диаметром около 40 мм и длиной 150 мм понадобится порядка 25 с.

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

  • температура нагреваемого предмета;
  • требуемая производительность нагрева;
  • поперечное сечение предмета.

Arduino и ШИМ

В уроке про функции времени я рассказывал, что у микроконтроллера есть так называемые счётчики, которые считают “пинки” от тактового генератора (кварца). Данные счётчики как раз и генерируют ШИМ сигнал, т.е. само вычислительное ядро микроконтроллера в этом не участвует. Помимо расчётов, даже вывод сигнала с ноги МК ложится на плечи счётчика

Это очень важно понимать, потому что ШИМ сигнал не тормозит выполнение кода, так как его генерацией занимается буквально “другая железка”

На платах UNO/Nano/Pro Mini у нас есть три таймера-счётчика, у каждого таймера есть по два выхода на пины МК, то есть у нас есть 2*3=6 пинов, способных генерировать ШИМ сигнал. Для генерации ШИМ у нас есть готовая функция

  • – пин, являющийся выводом таймера. Для Нано/Уно это пины D3, D5, D6, D9, D10, D11. На некоторых платах они помечены * звёздочкой, а вообще для определения ШИМ пинов на любой другой модели Ардуино достаточно загуглить распиновку
  • – заполнение ШИМ сигнала. По умолчанию все “выходы” ШИМ у нас 8-битные, то есть duty может принимать значение с “разрешением” 8 бит, а это 0-255

Совместим эти знания с прошлым уроком и попробуем менять яркость светодиода, подключенного через резистор к пину D3. Потенциометр подключен к пину A0

void setup() {
  pinMode(3, OUTPUT);   // D3 как выход
}

void loop() {
  // ШИМ на 3 пин, 1023/4 = 255 - перевели диапазон
  analogWrite(3, analogRead(0) / 4);
  delay(10);
}

Рассмотренный пример меняет яркость светодиода в зависимости от положения рукоятки потенциометра.

Пару слов о “стандартном” ШИМ сигнале – мы получаем его с такими настройками, какие нам даёт библиотека Arduino.h, а настройки эти сильно занижены по сравнению с возможностями Arduino. Про “улучшение” ШИМ мы поговорим позже, а сейчас давайте глянем на характеристики ШИМ “из коробки”:

Таймер Пины Частота Разрешение
Timer 0 D5 и D6 976 Гц 8 бит (0-255)
Timer 1 D9 и D10 488 Гц 8 бит (0-255)
Timer 2 D3 и D11 488 Гц 8 бит (0-255)

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

Как сделать ШИМ блок питания (контроллер)

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

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

Это вроде того, как диод используется при управлении транзистором реле. В данном случае обмотка двигателя также может выдать высокий ток, который будет теперь идти не только через транзистор, но и через диод. О конкретных примерах БП ШИМ можно узнать из статьи «Драйвер для светодиодов».

Топологии для формирования синусоидального сигнала

следующим образом

Плюсы:

  • Минимально возможное количество силовых транзисторов, а значит потери в 2 раза меньши и стоимость устройства тоже ниже
  • Сквозной ноль. Это упрощает процесс сертификации, особенно CE и ATEX. Связано это с тем, что сквозной ноль позволяет системам защиты по входу (например, УЗО) срабатывать так же при возникновение аварии в выходных цепях после преобразователя
  • Простая топология, что позволяем максимально уменьшить стоимость изделия при мелко-
    и средне серийном производстве

Минусы:

  • Необходимость двухполярного источника питания. Как видите на схему инвертора надо подавать ±380В и еще ноль
  • Удвоенное количество высоковольтных конденсаторов. Высоковольтные конденсаторы большой емкости и с малым ESR на мощностях от 3-4 кВт начинают составлять от 20 до 40%
    стоимости компонентов
  • Применение электролитических конденсаторов в «делителе». Они сохнут, подобрать конденсаторы с одинаковыми параметрами практически нереально, а если учесть, что параметры электролитов меняются в процессе эксплуатации, то и бессмысленно. Заменить на пленку можно, но дорого

Плюсы:

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

Минусы:

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

Небольшой итог

Способы управления электрической мощностью

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

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

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

Широтно-импульсная модуляция в частотной области

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

\(\text{Необходимое напряжение ЦАП}=A\times \text{коэффициент заполнения}\)

где A («амплитуда») – напряжение высокого логического уровня.

Давайте начнем наше более подробное исследование ЦАП на базе ШИМ с рассмотрения представления ШИМ сигнала в частотной области. Вот схема LTspice:

Рисунок 1 – Схема моделирования в LTspice

Как видно из характеристик PULSE, ширина импульса составляет 5 мкс, а период – 10 мкс. Таким образом, коэффициент заполнения составляет 50%, а несущая частота ШИМ сигнала составляет 100 кГц

Также обратите внимание, что A = 3,3 В, а время нарастания и спада составляет 10 нс. Вот сигнал во временной области:

Рисунок 2 – Представление ШИМ сигнала во временной области

А вот и результаты быстрого преобразования Фурье (БПФ):

Рисунок 3 – Представление рассматриваемого ШИМ сигнала в частотной области

Вы можете узнать в этой диаграмме спектр общего вида, который мы ожидаем увидеть от прямоугольного сигнала, то есть всплеск на несущей частоте, а затем уменьшающиеся по амплитуде гармоники на частотах, равных несущей частоте, умноженной на 3, несущей частоте, умноженной на 5, и так далее. Однако БПФ LTspice не показывает нам постоянной составляющей, которая не равна нулю, потому что этот прямоугольный сигнал не симметричен относительно оси x. Я изменил следующий график, чтобы включить компонент постоянной составляющей:

Рисунок 4 – Измененное представление в частотной области, учитывающее наличие постоянной составляющей

Итак, нам нужны стабильные 1,65 В, расположенные в левом краю, и нам не нужен этот проблемный всплеск на частоте 100 кГц (а также все более высокочастотные всплески). В этот момент вы, вероятно, можете понять, зачем мы используем фильтр нижних частот в ЦАП на базе ШИМ: фильтр сохраняет компонент постоянной составляющей, подавляя всё остальное. Если бы у нас был идеальный фильтр, у нас было бы совершенно стабильное напряжение ЦАП – просто оглянемся на предыдущий график и представим фильтр с АЧХ в виде «кирпичной стены», которая на частоте 50 кГц переходит от отсутствия затухания к полному затуханию. Все не связанные с постоянной составляющей компоненты сигнала будут устранены, и мы получим постоянное напряжение на уровне 1,65 В.

В этот момент вам может быть интересно узнать, как меняется спектр при изменении ширины импульса. Что если частотные составляющие перемещаются так, что фильтр нижних частот становится менее эффективным? Рассмотрим следующие два результата БПФ для коэффициентов заполнения 10% и 90%:

Рисунок 5 – Спектр ШИМ сигнала с коэффициентом заполнения 10%Рисунок 6 – Спектр ШИМ сигнала с коэффициентом заполнения 90%

Спектр, безусловно, изменяется относительно коэффициента заполнения 50%, но одно не меняется: первый всплеск находится на несущей частоте. Таким образом, независимо от коэффициента заполнения, мы имеем довольно большую полосу частот (в данном случае от постоянного напряжения до 100 кГц), в которой фильтр нижних частот может переходить от отсутствия затухания к существенному затуханию.

Полный текст программы

C++

#define F_CPU 16000000UL // задаем частоту микроконтроллера
#include «avr/io.h»
#include <util/delay.h>

void PWM_set(){ // задаем настройки ШИМ

DDRD |= (1<<PD7); //устанавливаем PD7 как выход ШИМ
TCCR2 |= (1<<WGM20)|(1<<WGM21); //выбираем режим быстрой ШИМ
TCCR2 |=(1<<COM21)|(1<<CS20)|(0<<CS21)|(0<<CS22); //clear OC2 on compare match
}

int main ()
{
unsigned char duty;
PWM_set(); // вызов функции установки параметров ШИМ
while (1)
{
for(duty=0; duty<255; duty++) // 0 to max duty cycle
{
OCR2=duty; // медленно увеличиваем яркость свечения светодиода
_delay_ms(10);
}
for(duty=0; duty>255; duty—) // max to 0 duty cycle
{
OCR2=duty; // медленно уменьшаем яркость свечения светодиода
_delay_ms(10);
}
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

#define F_CPU 16000000UL             // задаем частоту микроконтроллера
#include «avr/io.h»
#include <util/delay.h>

voidPWM_set(){// задаем настройки ШИМ

DDRD|=(1<<PD7);//устанавливаем PD7 как выход ШИМ

TCCR2|=(1<<WGM20)|(1<<WGM21);//выбираем режим быстрой ШИМ

TCCR2|=(1<<COM21)|(1<<CS20)|(<<CS21)|(<<CS22);//clear OC2 on compare match

}

intmain()

{

unsignedcharduty;

PWM_set();// вызов функции установки параметров ШИМ

while(1)

{

for(duty=;duty<255;duty++)// 0 to max duty cycle

{

OCR2=duty;// медленно увеличиваем яркость свечения светодиода

_delay_ms(10);

}

for(duty=;duty>255;duty—)// max to 0 duty cycle

{

OCR2=duty;// медленно уменьшаем яркость свечения светодиода

_delay_ms(10);

}

}

}

Схема №1

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

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

В качестве примеров подойдут К176ПУ2, К561ЛН1, К561ЛА7, К561ЛЕ5. Можно использовать и другие виды, но перед этим придётся хорошо подумать о том, как правильно сгруппировать их входы, чтобы они могли выполнять возложенный функционал. Преимущества схемы – доступность и простота элементов. Недостатки – сложность (практически невозможность) доработки и несовершенство относительно изменения диапазона выходного напряжения.

↑ А теперь то, ради чего это затевалось

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


Это измерено еще в первый раз, когда я дорвался до Creative, как измерителя. Просто тупо мерил все что под руку попадет. А вот свежий результат с новым БП. Больше в схеме ничего не менялось, даже провода внутри лежат также, и пыль не вытерта…


Такое ощущение, что самому Креативу стало легче рядом с обновленным предом. Самое интересное — уровень шума. Незначительный — но результат. А если еще все по уму сделать? Разводку там, корпус потяжелее? В общем интересная микросхема, интересный результат. Единственный минус — организация внешнего питания. Можно конечно поставить параметрический стабилизатор из двух-трех мощных резисторов и стабилитрона, можно запитаться от переменки через кондер и снова стабилитрон. Но это не сильно надежно, да и избавившись от тепловыделения с одной стороны, мы его добавим с другой.

Еще можно задрать самопитание до 25-30В и лишнее срезать интегральным стабом, как я делал на FAN7621. В общем можно решать этот вопрос на свой вкус. Я думаю все же поискать готовые малогабаритные решения DC\DC преобразователей.

Ну а пока на этом закончу. Далее планирую замучить FSFR2100, она справа на фото выше, но это тема для отдельного обзора.

Диммер как разновидность ШИМ

Аналогично работает ШИМ и для нагрузки при переменном напряжении. Например, в диммерах. В них используется регулятор (на изображении ниже это VR), которым устанавливается так называемое опорное напряжение. С ним сравнивается напряжение, которое включает симистор. В зависимости от величины опорного напряжения отсекается часть полуволны напряжения, получаемого от сети 220 В. Свет лампы в результате управляется от нуля до максимума.


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

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


Схема ШИМ с обозначением генератора пилообразного напряжения
Пилообразное напряжение от генератора на экране осциллографа

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

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

Тепловая мощность, выделяемая на ключе при ШИМ

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

Rtr→∞P=U2R→,{\displaystyle R_{tr}\rightarrow \infty \leftrightarrow P={{\frac {{U}^{2}}{R}}\rightarrow 0},}
Rtr→P=I2R→{\displaystyle R_{tr}\rightarrow 0\leftrightarrow P={I}^{2}R\rightarrow 0.}

Создание программы (ШИМ-синусоида)

А теперь погнали создавать какую-то кривую в прямоугольной системе координат, пусть это будет синусоида (или косинусоида). Обычно сразу забиваются значения для синусоиды в массив, но это можно сделать автоматически, причём потом будет возможность по-быстрому изменить её разрядность и амплитуду (но использование math.h займет намного больше памяти!). Не забываем подключить стандартную библиотеку математики (для использования функции синус):

Значения тригонометрической функции sin, как и cos находятся в диапазоне
, отрицательное напряжение МК не выдаст, для получения необрезанной кривой смещаем её повыше, то есть чтобы наибольшему отрицательному значению sin = -1 соответствовало 0 В, а наибольшему положительному значению sin = 1 напряжение питание контроллера 3.3 В.
Делим количество отсчётов на два, при расчёте каждого из них одна часть будет множиться на синус, а вторая прибавляться. Для примера ниже приведены значения для синуса разрядностью 8 бит (28 = 256 = отсчётов включая нуль), результатами расчётов должны быть, конечно, числа нецелые, но так как массив синусов имеет тип данных целочисленный, то они округляются в меньшую сторону.
На рисунке чётко видно, что наибольшему значению
sin = 1 соответствует наибольшее доступное значение 255 в регистре CCRn.

Для простоты осуществим загрузку в главном цикле (хотя это лучше делать в прерывании от таймера):

1) Создадим переменную типа
uint8_t (unsigned – беззнаковая; integer – целочисленная; допустимые значения 0-255) с произвольным именем:

2) В главном цикле запишем код, который будет брать значения из массива SinArray и запихивать в регистр CCRn. Сначала в регистр CCR1 (Таймер 1, Канал 1) поступит первое значение из массива (
i = 0, а счёт начинается с нуля!), далее происходит увеличение значения переменной i на единицу (i++;), небольшая задержка (определяет частоту выходного сигнала). При следующей загрузке в CCRn залетит уже второе значение из SinArray (т.к уже i = 1), ну и так далее до 255 (наибольшее возможное значение для uint8_t), а 256 уже не будет, а будет 0).

Собираем (
F7) и прошиваем (F8), проверяем осциллографом форму сигнала на выходе с МК до и после ФНЧ, получаем искомую кривую:

Ручной клепальник

Заключение. ШИМ в дисплеях — что это, добро или зло?

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

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

Если в случае с обычными мониторами сейчас можно встретить маркировку «Flicker-Free», то, когда речь заходит о ноутбуках, что за матрица стоит и в каком режиме она работает – загадка для посвященных. Узнать это можно только из обзоров или проведя самостоятельно примитивный тест на определение наличия ШИМ («карандашный» тест или при помощи обычного бытового вентилятора).

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий