САЙТ КРЫЛОВА ПАВЛА
Главная
Схемы Ветрогенераторы Собаки Стройка Книги О сельском хозяйстве и прочем


СХЕМЫ---->
Полезная схемотехника. статьи № 1-50

Аналоговое управление в микроконтроллерном устройстве.

А. ДОЛГИЙ, г. Москва

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

С точки зрения удобства пользования предпочтительно использовать для регулировки обыкновенный подстроечный или переменный резистор, преобразовав снимаемое с него напряжение в код. Однако усложнять ради этого разрабатываемое устройство, вводя в него АЦП, вряд ли целесообразно. Другое дело, если микроконтроллер (например, PIC12F675) имеет встроенный преобразователь. Тогда, как говорится, нет проблем.

К сожалению, АЦП есть далеко не во всех микроконтроллерах. Но и для них простое решение поставленной задачи существует — достаточно подключить переменный резистор по схеме, показанной на рисунке, к одной из двунаправленных линий порта ввода/вывода. В приведенной в таблице программе для микроконтроллеров серии PIC16 предполагается, что использован младший разряд порта В (RB0). Номиналы элементов, указанные на схеме, оптимальны при частоте тактового генератора микроконтроллера 4 МГц.

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

Первый после начала работы программы вызов процедуры ONESHOT — холостой. Он нужен лишь для установки высокого логического уровня на линии RB0. Благодаря этому к следующему вызову той же процедуры конденсатор C1 зарядится почти до напряжения питания.

Аналоговое управление в микроконтроллерном устройстве. Программа микроконтроллера.

С началом работы процедуры линия RB0 переключается на ввод и конденсатор C1 разряжается через переменный резистор R2. В цикле, начинающемся меткой TSX, программа периодически контролирует логический уровень на входе RB0, одновременно подсчитывая в регистре N число проверок. Как только конденсатор разрядится до такой степени, что будет зафиксирован логический ноль, произойдет переход на метку READY проверки прекратятся, а подпрограмма завершится переключением линии RB0 в режим выхода и установкой на ней высокого уровня.



Накопленное в результате работы процедуры ONESHOT число в регистре N находится в интервале 0...254 и определяется формулой

Аналоговое управление в микроконтроллерном устройстве. Формула для расчета.

где f0 — частота тактового генератора микроконтроллера. Число в знаменателе дроби может немного отличаться от указанного. Оно зависит от порога переключения использованного вывода конкретного экземпляра микросхемы. Если постоянная времени R2C1 больше допустимой, число N принимает значение 255.

Резистор R1 ограничивает зарядный ток конденсатора С1. Чтобы конденсатор успевал зарядиться полностью, интервал времени между вызовами процедуры ONESHOT должен в три-четыре раза превышать постоянную времени R1C1. Обычно это не вызывает затруднений — достаточно выполнять между вызовами несколько машинных команд.

Если вместо переменного резистора R2 применить термо- или фоторезистор, результат работы процедуры ONESHOT — число N — станет зависимым соответственно от температуры или освещенности чувствительного элемента. Ничто не мешает заменить резистор R2 и преобразователем любой другой физической величины в сопротивление или ток.

Иногда необходимо включить переменный резистор R2 или заменяющий его элемент не так, как показано на рисунке, а между выводом порта микроконтроллера и плюсом источника питания. В этом случае достаточно немного модифицировать процедуру ONESHOT, заменив в ней команду btfss PORTB,0 на btfsc PORTB,0, a bsf PORTB,0 на bcf PORTB,0.

Описанный способ аналогового управления применим и к микроконтроллерам других семейств. А например, в [1] переменный резистор был подключен к выводу порта адаптера параллельного интерфейса КР580ВВ55 для управления "перехватчиком" в одноименной игре для компьютера "Радио-86РК". Аналогичный способ преобразования "сопротивление—код" применен в адаптере игрового порта компьютера IBM PC [2] для получения информации о положении рукоятки джойстика.



ЛИТЕРАТУРА
1. Долгий А. Компьютерные игры. Перехватчик. — Радио, 1987, № 2, с. 23, 24.
2. Кармызов А. Интерфейсы IBM PC. — Радио, 1996, № 11, с. 24—26.
altay-krylov@yandex.ru