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

Схема, несмотря на наличие микроконтроллера PIC18LF2550, очень проста для повторения и может быть условно разделена на 3 части:

Генератор ШИМ

Микроконтроллер генерирует чёткие импульсы нужной формы и скважности, что значительно упрощает схему. Есть две кнопки, для увеличения и уменьшения мощности. Они идут на 3 и 5 выводы микросхемы PIC18LF2550. В зависимости от ширины импульса - светодиод медленнее или быстрее мигает, так визуально можно оценить скважность. Если светодиод светит полностью - мощность 100%, а если он погас, то скважность 0%.

Микроконтроллерный блок питания

Стаблизатор МК на 3,3 вольта, поэтому в зависимости от выходного транзистора можно использовать источник питания от 3.7 до 25 вольт. Частота коммутации составляет 32 кГц, а длительность импульса разделена на 256 шагов, в том числе полное включение и отключение.

Коммутатор нагрузки

Драйвер для MOSFET транзистора является - обычный 2N3904. Сам силовой транзистор может быть любой подходящий N-канальный MOSFET, не обязательно как по схеме 80NF55L.

Данная версия 4-канального 8-битного ШИМ-контроллера сконструирована с использованием микроконтроллера ATmegа16. Устройство сдержит интерфейс RS232 для управления с компьютера, интерфейс для 12-кнопочной клавиатуры и 4 аналоговых 10-битных канала для подключения потенциометров. Для отображения текущих режимов работы и параметров имеется 4-х строчный LCD-дисплей. Дополнительно ШИМ-контроллер имеет: 4 выхода на светодиоды, для индикации режимов управления (могут быть задействованы в роли выходов общего назначения), 3 выхода общего назначения.

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

Основные характеристики устройства:

  • 4-канала ШИМ, разрешение 8 бит, частота ШИМ - 31 кГц;
  • интерфейс RS232 для управления и контроля с PC;
  • простое схемотехническое решение с минимальным количеством внешних элементов;
  • 12-кнопочная клавиатура;
  • возможность аналоговой регулировки;
  • до 7 выходных линий общего назначения;
  • 4-строчный LCD-дисплей;
  • управление LCD-дисплеем через последовательный интерфейс;
  • пользовательское меню;
  • гибкие настройки;
  • программная реализация буферов FIFO для ускорения работы.

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

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

Логическая схема устройства.

Принципиальная схема устройства

Схемотехническое решение очень простое. Для тактирования микроконтроллера выбран кварцевый резонатор 8 МГц, источник питания +5.0 В собран на интегральном стабилизаторе LM7805 , индуктивность 10 мкГн и конденсатор 100 нФ - образуют фильтр, предотвращающий проникновение помех при переключениях в аналоговых цепях. Преобразователь логических уровней MAX232 используется для реализации последовательного интерфейса. LCD-индикатор на чипсете Hitachi (HD44780) с разрешением 20×4 либо 40×2. Узел управления подсветкой индикатора реализован на транзисторе MJE3055T (возможно использование более дешевого аналога). Матрица клавиатуры, стандартная, 4×3.

После подачи питания, микроконтроллер устанавливает последние сохраненные параметры в EEPROM: режимы управления каналами ШИМ (аналоговое управление, управление по последовательному интерфейсу, управление с клавиатуры), формат отображения параметров на индикаторе (управление по последовательному интерфейсу, отображение значений ШИМ, отображение аналоговых значений), а также состояние выходных линий общего назначения, состояние подсветки дисплея.

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

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

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

Пример реализации выходных каскадов ШИМ-контроллера

Регулятор оборотов микродрели на PIC-контроллере
ПОТАПЧУК,
г.Ровно, Украина. E-mail: [email protected]

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

Эти недостатки побудили разработать регулятор оборотов на современном микроконтроллере ф.Microchip PIC16F627/628. Важной особенностью данной модели микроконтроллера является наличие внутреннего двухскоростного RC-генератора. Используя эту особенность, в процессе выполнения программы можно переключать тактовую частоту микроконтроллера с 4 МГц на 32 кГц и наоборот. Данная микросхема содержит также встроенный широтно-импульсный модулятор (ШИМ), что позволяет реализовать весь диапазон регулировки оборотов. Коэффициент заполнения импульсов (величина, обратная скважности) меняется от 0 до 1. Это позволяет построить очень эргономичное устройство практически на одной микросхеме с минимальным количеством внешних компонентов.


Технические характеристики

Напряжение питания, В 8...25
Ток потребления устройством в рабочем режиме
(зависит от мощности электромотора), А 0.5...3
Ток потребления в ждущем режиме работы, мА < 1
Частота работы ШИМ, кГц 15
Коэффициент заполнения ШИМ 0.4...1
Количество ступеней регулировки напряжения на электродвигателе 50
Плавность регулировки скважности ШИМ, ступени/с 2

К выводам 18, 7 и 8 микроконтроллера (рис.1) подключены кнопки управления устройством. Следует отметить, что от электромотора и соединительного шлейфа во время работы идет довольно солидное электромагнитное излучение, которое может привести к самопроизвольному срабатыванию кнопок SB2 и SB3. Для предотвращения этого используются блокировочные конденсаторы С4 и С5, которые шунтируют высокочастотные наводки на выводах кнопок. Цепь R2-VD2 представляет собой простейший параметрический стабилизатор, снижающий уровень напряжения, которое подается с кнопки SB1 на цифровой вход микроконтроллера, до стандартных TTL-уровней сигнала. Резистор R3 формирует на
выводе 18 DD1 уровень логического "О" в то время, когда кнопка SB1 отпущена. Светодиод HL1 отображает режимы работы устройства.
ШИМ-сигнал с выхода микроконтроллера через резистор R4 подается на составной транзистор VT1, VT2. Коллекторы транзисторов подсоединены к одному из полюсов электромотора. Электромотор подключается к устройству при помощи трехпроводного шлейфа. Два провода используются для подачи питания, третий — для приема сигнала от кнопки "Пуск". Напряжение питания на двигателе зависит от коэффициента заполнения ШИМ-сиг-нала. Стабилизатор на микросхеме DA1 обеспечивает питанием микроконтроллер. Конденсаторы С1 и С2 используются для фильтрации высокочастотных помех, поступающих как с блока питания, так и от самого электромотора. Для этих же целей установлен конденсатор СЗ, включенный параллельно полюсам питания электромотора. Диод VD1 гасит токи самоиндукции, которые появляются в цепи питания электромотора при работе.
Подробно разобраться в принципах работы устройства поможет схема алгоритма, представленная на рис.2. В соответствии с ним сразу после старта программы микроконтроллер проходит начальную инициализацию. Во время инициализации настраиваются порты микроконтроллера, таймеры (счетчики), и переключается тактовая частота с 4 МГц на 32 кГц. После этого микроконтроллер входит в программный цикл ожидания нажатия кнопки "Пуск" (SB1). В этом цикле также происходит обработка прерывания по переполнению таймера-счетчика 2, которое используется для задания периодов работы светодиодаНL1.
После нажатия кнопки SB1 программа микроконтроллера сразу же переключает частоту тактирования с 32 кГц на 4 МГц и проводит инициализацию внутреннего ШИМ-контрол-лера. Далее процессор читает сохраненное ранее в энергонезависимой памяти (EEPROM) значение длительности импульса ШИМ и записывает его в соответствующий служебный регистр. Проделав все эти операции, микроконтроллер запускает ШИМ и снова оказывается в программном цикле ожидания нажатия кнопок SB2, SB3, либо отпускания кнопки SB1.
При нажатии кнопки SB2 (SB3) микроконтроллер увеличивает (уменьшает) длительность импульса ШИМ, и тем самым изменяет напряжение, прикладываемое к электромотору. После каждого изменения длительности импульса ШИМ текущее значение сохраняется в виде константы в энергонезависимой памяти микроконтроллера (EEPROM). Это позволяет не проводить начальную настройку скорости вращения "сверлилки" каждый раз при начале работы. Если же программа обнаруживает, что кнопка SB1 отпущена, микроконтроллер сразу же переходит на программную ветвь завершения работы ШИМ-регулятора. В этой ветви производится выключение ШИМ (на выводе 9 DD1 устанавливается низкий уровень), и микроконтроллер снова переходит в цикл ожидания нажатия кнопки "Пуск". Дальше алгоритм работы устройства повторяется.
Управляющая программа микроконтроллера приведена в табл.1, а карта прошивки — в табл.2. Основные ее задачи — сканирование кнопок и управление ШИМ-сигналом.
Благодаря наличию в данном микроконтроллере регистра периода ШИМ, можно задать практически любую его частоту. В данном устройстве из практических соображений частота ШИМ выбрана около 15 кГц (точное значение зависит от частоты внутреннего RC-генератора). Коэффициент заполнения (К3), как уже упоминалось выше, можно задать от 0 до 1. Но практика показала, что большинство электромоторов при К3 меньше 0,4 не вращаются. По этой причине диапазон возможных К3 в данной программе составляет 0,4.. 1. Программа обеспечивает дискретное изменение К3 (50 ступеней) при нажатии соответствующих кнопок управления.
Устройство управляется с помощью трех кнопок SB1.. SB3. При помощи кнопки SB1 осуществляется включение и выключение электромотора (пока эта кнопка нажата, мотор вращается). Кнопка SB2 увеличивает обороты, a SB3 — уменьшает. Каждое изменение оборотов запоминается в энергонезависимой памяти микроконтроллера. Поэтому при следующем включении питания электродвигатель вращается со скоростью, заданной раньше.
Когда электродрель выключена, микроконтроллер находится в режиме энергосбережения (частота RC-генератора — 37 кГц), и ток потребления составляет менее 1 мА. О данном режиме сигнализирует светоди-Од HL1, который неравномерно мигает (с интервалом в 3 с). После пуска электромотора кнопкой SB1 светоди-од гаснет Изменение К3 можно производить только при включенном электромоторе. Все нажатия кнопок SB2 и SB3 подтверждаются миганием светодиода HL1. Если во время регулировки оборотов достигнут верхний либо нижний предел, светодиод HL1 перестает мигать, сигнализируя о том, что регулятором достигнут предел регулировок.
Устройство собрано на плате размерами 55x38 мм (рис.3). На одном ее конце сверлят три отверстия, в которые впаивают выводы шлейфа питания электромотора, длина которого может быть 0,5... 1 м. На корпусе электромотора в удобном месте монтируют кнопку SB1, а также блокировочный конденсатор СЗ и импульсный диод VD1. В описываемом устройстве используется микроконтроллер PIC16F627 или PIC16F628. Без какой-либо коррекции программы возможно замена на PIC16F627A, PIC16F628A или PIC16F648A, которые в большинстве случаев стоят дешевле. Основное различие между этими тремя микроконтроллерами заключается в разном объеме памяти программ. Так, у PIC16F627/627A объем памяти программ составляет 1024 слова, у PIC16F628/628A — 2048 слова, а у PIC16F648A — 4096 слов. Кроме того, PIC16F648A имеет больший объем ОЗУ и EEPROM (по 256 байт). Саму микросхему микроконтроллера выгодно установить в плату на "панельке". Это позволяет модернизировать устройство, не прибегая к паяльнику, т.к. в любое время можно вынуть микроконтроллер и запрограммировать его обновленным программным обеспечением.
Поскольку ток потребления электромотора может быть довольно большим, транзистор VT2 желательно установить на теплоотвод размерами не менее 40x40 мм (я использовал теплоотвод от блока разверток старого телевизора). Транзистор VT2 подбирается по мощности используемого мотора, например, КТ817 имеет рассеваемую мощность с теплоот-водом 20 Вт, а КТ819 — 60 Вт . В моем устройстве работает электромотор типа ДПМ-25-03.
В некоторых случаях необходимо, чтобы электродрель плавно набирала обороты при пуске (например, при сверлении отверстий в платах без кернения). Для таких случаев разработан второй вариант программы (карта прошивки — в табл.3).

В электронном виде таблицы можно найти по адресу http //radio-mir.com

1. Полупроводниковые приемно-усилительные устройства (Р.М.Терещук и др.). — К., 1987.
2. http://www.microcontrollers.narod.ru

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

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

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

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

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

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

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

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

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

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

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