Универсальный ШИМ-контроллер на PIC с регулировкой резистором

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

Универсальный ШИМ-контроллер на PIC с регулировкой резистором



Здесь же предлагается схема, основанная на PIC12F683, с использованием периферийного устройства Capture / Compare / PWM внутри PIC для генерации выходного сигнала. Полевой МОП-транзистор логического уровня с N-каналом нужен для управления выходной мощностью.

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

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

Универсальный ШИМ-контроллер на PIC с регулировкой резистором



В исходной версии проекта вход от аналого-цифрового преобразователя (АЦП) подавался непосредственно в регистр рабочего цикла модуля ШИМ на МК, поэтому выходная нагрузка изменялась линейно прямо пропорционально изменению входного напряжения. Вход переключателя позволял выбрать период ШИМ в одном из трех диапазонов; 15,6 кГц, 3,8 кГц и 980 Гц.

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

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

Вход переключателя теперь циклически проходит через 3 таблицы сопоставления. Таблицы по умолчанию, идущие с кодом, имеют взаимно однозначное сопоставление входного напряжения с выходным рабочим циклом и фиксированные периоды 15,6 кГц, 3,8 кГц и 980 Гц соответственно, чтобы сохранить обратную совместимость с исходной версией кода.

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

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

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

МК PIC12F683 имеет внутреннее аппаратное периферийное устройство PWM, которое используется для генерации сигнала ШИМ. Рабочий цикл сигнала ШИМ контролируется VR1, который через R1 подает напряжение на вывод 3 IC1. При 0 В на входе рабочий цикл составляет от 0% (выключено) и до 100% при 5 В на входе.

Сигнал PWM выводится с вывода 5 IC1 и управляет выводом затвора Q1 через R3. Резистор R4 соединяет вывод затвора Q1 с землей. Это гарантирует, что Q1 останется выключенным при первом включении схемы, пока микропрограммное обеспечение не инициализирует выходы. Диод D1 необходим при возбуждении индуктивных нагрузок и обеспечивает путь для индуктивного обратного тока. Для нагрузок до 3-х ампер Q1 не требует радиатора.

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

Питание логики обеспечивается IC2, 5-вольтовым стабилизатором 78L05. Он подключается к источнику входного напряжения через диод D2, который обеспечивает защиту от обратной полярности подачи питания.

Полезное на сайте:
Портативный усилитель для наушников

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

Переключатель SW1 позволяет выбрать одну из трех таблиц переназначения ШИМ. Чтобы избежать случайных изменений в используемой таблице карт, программное обеспечение требует, чтобы переключатель удерживался не менее 500 мс перед переключением на следующую. Выбранная таблица обозначается светодиодом LED1, и значение сохраняется в EEPROM, поэтому он всегда включается с использованием последней использованной настройки.

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

CON1 обеспечивает цифровой вход, который опрашивается прошивкой. Когда этот вход становится низким, рабочий цикл устанавливается на 0% от начала следующего периода ШИМ, это выключает MOSFET Q1. Когда на входе возвращается высокий уровень, ШИМ перезапускается с использованием рабочего цикла, установленного входом от VR1. Разъем также обеспечивает соединения 5 В и Gnd, позволяющие подключить небольшую цепь управления вне печатной платы. Если он используется для питания другой цепи, убедитесь, что он не потребляет более 40 мА от источника питания. Если управление выключением не требуется, оставьте разъем открытым, и внутреннее слабое подтягивание PIC будет удерживать входной высокий уровень, обеспечивая выход.

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

Схема будет работать с входным напряжением от 9 до 20 вольт. Если решите использовать устройство с более высоким входным напряжением, может потребоваться выбрать другие компоненты стабилизатора.

В качестве диода D1 здесь может использоваться 1N4002 для большинства устройств с низким энергопотреблением, лучше 1N5819 Шоттки, для более высоких токовых нагрузок могут быть 1N5820, SB330 или SB350.

Чтобы получить полный диапазон управления, когда VR1 повернут полностью против часовой стрелки, убедитесь что напряжение на клемме VR1 0 вольт. Напряжение на клемме VR1 должно быть от Vss до Vdd, чтобы получить полный выходной диапазон.

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

Потенциометр VR1 обозначен на схеме как 5K, но его можно заменить и 10 кОм. Во всех случаях это должен быть линейный тип, а не логарифмический.

Вход сброса PIC MCLRE (контакт 4) настроен на вход с логикой сброса, внутренне связанной с Vdd, и включенным слабым подтягиванием на контакте ввода / вывода.

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

Обратите внимание на следующие моменты:

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

Здесь VR1 контролирует рабочий цикл (и период) выхода ШИМ. Аналоговый вход от VR1 используется в качестве индекса в таблице карты, которая возвращает требуемый рабочий цикл и период ШИМ. Это означает, что линейный вход на АЦП может использоваться для генерации нелинейного изменения рабочего цикла на выходе.

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

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

Используя доступную память в PIC, можно запрограммировать три таблицы переназначения. Вход переключателя S1 используется для выбора таблицы карты, которая будет использоваться. Нажатие S1 на более 500 мс будет циклически перемещать по трем таблицам карт; это необходимо для предотвращения случайного включения. Используемая таблица обозначается светодиодом, как показано ниже. Таблица карты выбранная для использования, также сохраняется в EEPROM, поэтому при следующем включении PIC будет использоваться последняя выбранная таблица.

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

  1. Таблица 1, период ШИМ 15,6 кГц
  2. Таблица 2, период ШИМ 3,8 кГц
  3. Таблица 3, период ШИМ 980 Гц
Полезное на сайте:
Дезинфекция салона автомобиля своими руками

Данные карты можно изменить, отредактировав файл bdcm_remap.asm и введя альтернативные имена включаемых файлов для требуемых таблиц карты. Раздел для редактирования находится в конце файла. Точка с запятой комментирует строку, ее удаление приведет к включению строки во время сборки. Всегда должно быть три файла данных переназначения. Это могут быть разные файлы или один и тот же, включенный трижды.

Значение коэффициента заполнения, используемое в таблице карты, должно быть целым числом в диапазоне от 0 до 255. Чтобы преобразовать коэффициент заполнения в процентах в значение для таблицы, умножьте его на 2,55. Например, 60% x 2,55 = 153.

Новые таблицы могут быть созданы с помощью Exel. Скопируйте и вставьте необходимые ячейки в MPLAB и сохраните как someMapFile.inc. Включите имена файлов карты в файл bdcm_remap.asm и соберите заново. Пример электронной таблицы (Excel 2003) имеется в общем архиве в конце статьи.

Сборка и включение

Подключите входное питание постоянного тока к CON2, а выходную нагрузку к CON3. Вход выключения PWM необязателен, если он не требуется оставьте разъем отключенным и выход будет включен.

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

Файл HEX готов к программированию непосредственно в PIC12F683. Файл asm содержит исходный код, который можете изменить или просто просмотреть, чтобы увидеть как оно работает. Если собираетесь изменить код, рекомендуем загрузить и установить Microchip MPLAB IDE, которая позволит легко редактировать, изменять и программировать PIC.

Версия с мягким запуском

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

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

Если управляющий потенциометр находится в максимальном положении, требуется приблизительно 1,2 секунды, чтобы выходной сигнал увеличился до конечной настройки, это время прямо пропорционально положению управляющего положения; например если регулятор установлен на 1/3 от максимума, потребуется 1,2 / 3 = 0,4 секунды.