Журнал РАДИОЛОЦМАН, апрель 2012
Пропорционально-интегрально-дифференциальный (ПИД) регулятор – устройство в цепи обратной связи, используемое в системах автоматического управления для формирования управляющего сигнала. ПИД-регулятор формирует управляющий сигнал, состоящий из суммы трех слагаемых, первое из которых пропорционально входному сигналу, второе – интегралу входного сигнала, третье – производной входного сигнала [1]. Этим трем составляющим соответствуют отдельные элементы ПИД-контроллера, каждый из которых выполняет свою задачу и оказывает свое специфическое воздействие на поведение системы.
Промышленность выпускает большой ассортимент ПИД-контроллеров, отличающихся в основном выполняемыми функциями и элементной базой. Большинство из них выполнено в стандартном форм-факторе (Рисунок 1).
![]() |
|
Рисунок 1. | ПИД-контроллеры промышленного изготовления в основном имеют стандартный форм-фактор. |
В статье мы рассмотрим конструкцию ПИД-контроллера с открытой аппаратной платформой и открытым исходным кодом, выполненного в промышленном форм-факторе (Рисунок 2). Эта разработка является результатом сотрудничества компании Rocket Scream Electronics и Бретта Беорегарда (Brett Beauregard) – автора программной библиотеки ПИД-функций Arduino. Основное внимание будет уделено аппаратной части контроллера. Придуманная авторами аббревиатура «osPID», расшифровывается как «open source PID», т.е., «ПИД-контроллер с открытым исходным кодом».
![]() |
|
Рисунок 2. | Внешний вид osPID-контроллера. |
Компания Rocket Scream Electronics занимающаяся разработкой коммерческих вариантов Arduino-совместимых процессорных модулей, плат расширения и отладочных инструментов, пополнила ассортимент ПИД-контроллером, которому посвящена эта статья. Одной из интересных разработок компании является плата расширения для Arduino – контроллер печи для пайки оплавлением (Arduino Reflow Controller Shield).
В отличие от промышленных изделий, описываемый ПИД-контроллер имеет гибкую аппаратную часть, что позволит пользователям и инженерам модифицировать, изменять и улучшать его. В качестве базовой аппаратной платформы выбрана Arduino, что также предоставляет определенные преимущества: полную программную поддержку, бесплатную среду разработки, большое количество дополнительных материалов и ресурсов.
Имеющий модульную конструкцию ПИД-контроллер состоит из основной (материнской) платы, платы ввода и платы вывода.
- Основная плата – это Arduino-совместимая процессорная плата с пользовательским интерфейсом (дисплей, органы управления). Два установленных на ней краевых разъема предназначены для подключения плат ввода и вывода.
- Плата ввода предназначена для нормирования и согласования сигналов от датчиков. Другими словами, это входная часть ПИД-контроллера. В зависимости от типа контролируемого параметра, платы ввода могут быть нескольких вариантов. К примеру, ниже мы рассмотрим плату, к которой подключается термистор и термопара для контроля температуры.
- Плата вывода предназначена для организации обратной связи с системой, другими словами, это плата управления конечным (исполнительным) устройством.
Платы ввода и вывода имеют 6-контактные ответные разъемы для подключения к основной плате. Вся периферия микроконтроллера, включая интерфейсы SP, I2C, внешний источник опорного напряжения, аналоговые входы и цифровые линии ввода/вывода, доступна для обеих плат.
Основная плата
Сердцем аппаратной части ПИД-контроллера является Arduino-совместимая плата с микроконтроллером Atmel ATMega328P, снабженная простым пользовательским интерфейсом. Микроконтроллер работает на частоте 16 МГц, пользовательский интерфейс образован двухстрочным 8-символьным ЖК индикатором с голубой подсветкой и четырьмя кнопками управления (Рисунок 3).
![]() |
|
Рисунок 3. | Внешний вид основной платы ПИД-контроллера. |
Отличительные особенности основной платы:
- Arduino совместимая плата на микроконтроллере ATMega328P-AU;
- Пользовательский интерфейс с двухстрочным ЖК индикатором;
- Встроенный USB порт для программирования и конфигурирования;
- Специальные разъемы для подключения плат ввода и вывода
- Несколько светодиодов состояния;
- Электромагнитный излучатель для звукового оповещения;
- Кнопка сброса;
- Источник опорного напряжения для АЦП с LC-фильтром;
- Диапазон напряжений питания ПИД-контроллера от 7 до 38 В;
- Интерфейс внутрисхемного программирования;
- Размеры 46.99 × 46.99 мм.
Принципиальная схема основной платы контроллера изображена на Рисунке 4. Для облегчения чтения схемы каждый функциональный узел изображен отдельно.
![]() |
|
Рисунок 4. | Принципиальная схема основной платы. |
Источник питания 5 В для микроконтроллера и периферии сделан на основе микросхемы высокоэффективного понижающего DC/DC преобразователя LT3971. Это позволяет питать ПИД-контроллер напряжением до 38 В, а также оставляет возможность дальнейшей модернизации схемы для приложений, использующих напряжения ±10 В или ±5 В.
Микросхема LT3971 имеет сверхмалый ток покоя (IQ = 2.8 мкA), а режим Burst Mode обеспечивает высокий КПД при малых нагрузках, удерживая выходные пульсации в пределах 15 мВ.
Узел звукового излучателя B1 с усилителем на транзисторе Q1 можно также отнести к пользовательскому интерфейсу, так как он используется для звукового подтверждения действий оператора.
Интерфейс USB, предназначенный для программирования и конфигурирования контроллера с помощью ПК, реализован на микросхеме моста USB-UART FT232RL. Добавлен также разъем внутрисхемного программирования, который будет полезен при необходимости модификации Arduino-загрузчика.
К специальным двухрядным 6-контактным разъемам основной платы подключаются платы ввода/вывода. Такая конструкция позволила обойтись без ответных разъемов на самих платах ввода/вывода (Рисунок 5).
![]() |
|
Рисунок 5. | Подключение плат ввода/вывода к основной плате контроллера. |
Модуль ЖК индикатора на стандартном контроллере HD44780 имеет 2 строки по 8 символов. Модуль подключается к микроконтроллеру по 4-битному интерфейсу, контрастность регулируется подстроечным резистором R3. Модуль является отдельным компонентом, который впаивается на основную плату. Работу с индикаторами подобного типа поддерживает стандартная библиотека Arduino LCD Library.