Многие процессы люди доверяют роботам, есть ли общий подход к контролю логических процессов. Для этого мной и было разработано это устройство. Перепрограммируемая эмуляция логических элементов или конструктор логики на микроконтроллере PIC18F2685. Знание работы с компьютером и прибором может послужить хорошей наглядной «игрушкой» для начинающих радиолюбителей и программистов.
Рисунок 1.
- Введение и принцип работы
Структура прибора и её связь с объектом контроля продемонстрирована на рисунке 1. Данное устройство разработано для решения многих задач в электронике и программирование. Допустим, объект контроля это аквариум. И целью является автоматизация обслуживания аквариума. С помощью конструктора логики можно реализовать работу освещения, где датчиком является фоторезистор. Так как есть три таймера можно с помощью специального механизма кормить рыбок три раза в сутки, период выброса корма в аквариум будет равен разнице параметров времени таймера. Для аграриев прибор может стать хорошим помощником в контроле поливом (датчик уровня воды), влажности (датчик влажности), температуры (терморезистор), освещения (фоторезистор). Столь широкий спектр
применения говорит о высокой универсальности и простой настройке прибора для владельца компьютера даже с маленьким стажем.
Рисунок 2.
Перед тем как выполнить работу в 32 модуля загружается логическая функция и четыре адреса 0..47 флагов. Один флаг это один бит. Флаг опущен бит - равен нулю, флаг поднят - бит равен единице. Таким образом, модуль имеет 5 адресов физически хранящихся в статической ОЗУ – SRAM. После того как в модули загружена информация они каждую секунду выполняются последовательно от 0 до 31 в рабочем цикле. Адреса эмулируемых логических функций смотреть в таблице 1, которую можно скачать с ПО и прошивкой для микроконтроллера с сайта журнала «Радиоконструктор».
Каждую секунду происходит измерение напряжения ADC0..ADC3, подсчитывается КМОП счётчиком количество импульсов, реализуется КМОП ШИМ и КМОП логика. Наборная область это не с чем не связанные флаги 8..39. Связь флагов с АЦП, счётчиком, таймерами, выходами, ШИМ и выводом отчёта показана в таблице 2.
Принципиальная схема прибора приведена на рисунке 2. Основой прибора является микроконтроллер DD1 PIC18F2685 [1] и UART-USB интерфейс DD2 FT232RL [2]. Микроконтроллер DD1 можно запрограммировать, подключив к разъёму X4 внутрисхемный программатор MPLAB ICD 2 или MPLAB ICD 3. Принудительная возможность сбросить микроконтроллер во время работы отсутствует, R13 подключен к NMCLR выводу микроконтроллера.
Генератор тактовой частоты для микроконтроллера DD1 собран на кварцевом резонаторе ZQ1 и стабилизирующих конденсаторах C1 и C2.
Для генерации секунд в микроконтроллере задействован часовой кварцевый резонатор ZQ2 и стабилизирующие конденсаторы C3 и C4.
К входам (разъём X1) и выходам (разъём X2 и X3) подключены резисторы R1- R12 для рассеивания электрической энергии из-за замыкания входов или выходов между собой или с питанием. Для питания других устройств служит разъём X3.
Источник опорного напряжения DA2 LM4040C20ILPE3 подключен последовательно с резистором R17 и даёт для 10-и битного АЦП микроконтроллера 2,048 В.
АЦП измеряет напряжение 0..2046 мВ, с шагом в 2 мВ. Счётчик подсчитывает количество импульсов КМОП логики. Приращение происходит по переднему фронту. Сброс счётчика происходит при обесточивании прибора. Таймеры циклические, точность 1 секунда.
Питаться прибор может во время программирования через разъём X4 (в настройках интегрированной среды MPLAB IDE нужно этот способ указать). Подключить к разъёму X6 блок питания, способного давать переменный или постоянный ток 0,5 A и напряжение 9 – 15 В. Полярность можно не соблюдать, всё равно диодный мост VD3 выпрямит ток. Интегральный линейный стабилизатор напряжения DA1 L7805ACV стабилизирует напряжение 5 В с точностью в 2%. Развязка напряжения между источниками питания подключенными к разъёмам X5 и X6 выполнена на диодах Шоттки VD1 и VD2. Питание прибора блокируется фильтрующими конденсаторами C5-C14.
Светодиоды HL1-HL3 информируют о питании, работе и трафике данных периферийного устройства.
Собрав и запрограммировав устройство его можно подключить к ПК через USB разъём X5.
Скачать драйвер можно с официального сайта [2].
ПО работает с такими ОС, как Windows XP, Vista, 7 и 8.
Откройте ПО AYK-LC-USB. Затем убедившись, что компьютер распознаёт прибор можно нажать на кнопку «Connect» скриншот, если программа не нашла периферию, тогда появляется сообщение об ошибке, скриншот 1.
При грамотном подключении программа отображает окно, в которое вводится имя фала содержащего программу, как показано на скриншоте 2.
После ввода имени файла «test» нажмите «ОК», подождите пока программа загрузится в прибор, об этом индицирует светодиод HL3. Работа программы показана на скриншоте 3.
Map – карта флагов, зелёные – поднятые флаги, а красные – опущенные. PWM – ШИМ – можно менять в течении работы ПО с прибором. ПО и файлы с расширением ini должны быть в одной директории (папке). Сформированный отчёт в блокноте смотреть на скриншоте 4.
Для разрыва связи ПК с периферией нужно нажать на кнопку «Disconnect».
Правильно собранное устройство работает сразу. Настройки будут сводиться к корректному заполнению констант в ini-файл. Напряжение нижний порог и верхний порог ADC0L и ADC0H, соответственно в мили вольтах с шагом в 2 мВ. Количество импульсов нижний порог и верхний порог NL и NH, соответственно. Максимальное значение 16777215. Время удержания поднятого флага, нижний порог T0L и верхний порог T0H (формат часы:минуты:секунды). PWM – реализация ШИМ. PWMC - коэффициент 1:1, 1:4, 1:16. PWMP – период от 0 до 255. PWMD – коэффициент заполнения от 0 до 255. PWMP больше либо равно PWMD. Отчёт PRD=1 - ежесекундно. M00F, M00A, M00B, M00C, M00D могут принимать адреса от 0 до 47.
1) Подключите прибор к компьютеру через USB.
2) С помощью специального программного обеспечения загрузите необходимую программу (файл с расширением ini) в прибор.
3) Если отслеживать параметры и логику нет смысла, тогда к разъему X6 прибора можно подключить источник питания на 12 вольт. Теперь можно нажать на кнопку программы «Disconnect» и вытащить USB- вилку.
4) Если прибор обесточить, то для выполнения программы её придётся опять загрузить, так как программа хранится на энергозависимой статической ОЗУ.
Ссылки в интернете
1) www.microchip.com
2) www.ftdichip.com
3) www.aykovalev.com
Администрация сайта "Малаток" искренне благодарит Антона Ковалева за предложенный им материал.
|