Встраиваемый измеритель тока и напряжения на PIC12F675 » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки Написать нам
Опрос

На каком языке программирования вы пишите программы?


Ассемблер
Си
Бейсик
Паскаль
Другой


Последние материалы
  • Каршеринг в Москве - это Просто, Удобно и Недорого.
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Программирование на C микроконтроллеров PIC24
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Популярные материалы
    Случайная книга
    Встраиваемый измеритель тока и напряжения на PIC12F675
    Автор публикации: alex Просмотров: 11194 Добавлен: 16-12-2014, 12:42 Комментарии: 0

         Предлагаемое устройство предназначено для установки в различные регулируемые блоки питания. Оно отображает на своих светодиодных индикаторах выходное напряжение блока и ток его нагрузки.
         Когда появилась необходимость постоянно контролировать выходное напряжение и ток нагрузки лабораторного блока питания, сразу было решено выводить их значения на семиэлементные светодиодные индикаторы. Возможная альтернатива — символьные ЖКИ с двумя строками по 8 или 16 символов, но они дороги и плохо читаемы. Ещё одним требованием был одновременный вывод на индикаторы значений напряжения и тока без каких-либо переключений. По разным причинам готовые решения, найденные в литературе и Интернете, автора не устроили, и он решил сконструировать устройство самостоятельно.


         Внешний вид предлагаемого измерителя показан на рис. 1. Он позволяет измерять напряжение от 0 до 99,9 В с дискретностью 0,1 В и ток от 0 до 9,99 А с дискретностью 0,01 А. Устройство собрано на плате размерами 57x62 мм и может быть встроено внутрь практически любого лабораторного блока питания или другого прибора, где требуется постоянный контроль напряжения и тока.
         Схема измерителя изображена на рис. 2. Он содержит ОУ LM358N, два интегральных стабилизатора напряжения 78L05, микроконтроллер PIC12F675-I/P (самый недорогой из имеющих десятиразрядный АЦП), два регистра 74HC595N и два семиэлементных светодиодных индикатора. Они могут быть четырёх- или трёхразрядными.


         Измеренное значение напряжения выводится на индикатор HG1, а тока — на индикатор HG2. Одноименные выводы элементов индикаторов попарно объединены и подключены через ограничивающие ток резисторы R13—R20 к выходам регистра DD2. Общие выводы разрядов индикаторов подключены к регистру DD3. Регистры соединены последовательно и образуют 16-разряд-ный сдвиговый регистр, управляемый сигналами с трёх выходов микроконтроллера DD1: GP2 (тактовые импульсы), GP4 (загружаемый последовательный код), GP5 (импульс вывода загруженного кода на параллельные выходы регистров). Индикация — обычная динамическая, при которой разряды индикаторов включаются поочерёдно импульсами на выходах регистра DD3, формируемыми одновременно с появлением на выходах регистра DD2 кодов для отображения во включённом разряде нужной цифры.
         Индикаторы HG1 и HG2 могут быть как с общими анодами, так и с общими катодами элементов каждого разряда, но обязательно оба одинаковые. В зависимости от этого должен быть выбран соответствующий вариант программы микроконтроллера — AV-meter_ common_anocle.HEX для общих анодов или AV-meter_common_cathode. HEX для общих катодов. Микроконтроллер управляет индикаторами по прерываниям от таймера TMR0, следующим с периодом 2 мс.
         Входы GP0 и GP1 работают в режиме аналоговых входов АЦП микроконтроллера. GP0 используются для измерения напряжения, a GP1 — тока. В трёх старших разрядах индикаторов выводятся измеренные значения. В младшем разряде индикатора HG1 постоянно выведена буква U (признак измерения напряжения), а в том же разряде индикатора HG2 — буква А (признак измерения тока). В случае применения трёхразрядных индикаторов никаких изменений программы не требуется, но эти буквы отсутствуют.
         Измеряемое напряжение поступает на микроконтроллер через делитель R2-R4, а пропорциональное измеряемому току напряжение - с выхода ОУ DA1.1. Резистор R12 вместе с внутренним защитным диодом микроконтроллера предохраняет его вход от возможной перегрузки (ОУ питается напряжением 7...15 В). Коэффициент усиления снимаемого с датчика тока (резистора R1) напряжения около 50 задан резисторами R6, R8, R11. Его точное значение устанавливают подстроечным резистором R8.
         ФНЧ R7C3 сглаживает пульсации напряжения на неинвертирующем входе ОУ. Без этого фильтра показания прибора "прыгают". Аналогичную функцию выполняет конденсатор С2 в цепи измерения напряжения. Стабилитрон VD1 защищает вход ОУ от перенапряжения в случае обрыва резистора R1. В крайнем случае стабилитрон можно не устанавливать.
         Особо следует остановиться на цепи R5R10. В отсутствие измеряемого тока она создаёт на входе ОУ начальное смещение около +0,25 мВ. Без этого наблюдалась существенная нелинейность при измерении тока менее 0,3 А. У разных экземпляров микросхем LM358N этот эффект проявляется в разной степени, но в любом случае погрешность при малых значениях измеряемого тока слишком высока. При установке R5 и R10 указанных на схеме номиналов (они могут быть пропорционально изменены при сохранении того же соотношения, например, 15 Ом и 300 кОм) погрешность измерения тока, обусловленная этим эффектом, не превышает единицы младшего разряда.
         Со всеми имеющимися у меня экземплярами микросхемы LM358N, а они приобретались в течение последних десяти лет в разных местах, никакой подборки указанных резисторов не потребовалось. Но при необходимости следует определить минимальное сопротивление резистора R10, при котором на индикаторе HG1 в отсутствие измеряемого тока ещё светятся нули, а затем увеличить его в 1,5...2 раза. Я не рекомендую в целях упрощения конструкции исключать обычно отсутствующие в подобных устройствах элементы С2, С3, R4, R5, R10.
         Хорошая точность и стабильность показаний обеспечена также полным отделением от микроконтроллера относительно мощных импульсных узлов управления индикаторами путём их питания от отдельного интегрального стабилизатора напряжения DA3. Помехи от работы процессора самого микроконтроллера мало влияют на результаты измерений, так как каждое из них выполняется с предварительным переводом микроконтроллера в спящий режим с выключенным тактовым генератором.
         Микроконтроллер тактируется от внутреннего генератора. R9C5 — цепь установки микроконтроллера в исходное состояние. Для устранения последствий возможных сбоев микроконтроллера в нём включён сторожевой таймер (WDT).


         На рис. 3 изображён чертёж проводников печатной платы устройства, а на рис. 4 — расположение деталей на ней. Большая часть резисторов и конденсаторов — типоразмера 0805 для поверхностного монтажа. Исключения — резисторы R2 (из-за рассеиваемой мощности), R13 (для упрощения разводки печатных проводников), подстроечные резисторы R3, R8, оксидные конденсаторы С1, С6, С8. Конденсаторы С2 и С3 — керамические, но их можно заменить оксидными танталовыми.
         Стабилитрон 1N4734A можно заменить другим с напряжением стабилизации 3...4,7 В. Четырёхразрядные индикаторы FYQ-3641AHR-11 или FYQ-3641BUHR-11 (индекс А означает общий катод, индекс В — общий анод) красного цвета свечения и высотой знака 0,36" (9 мм) можно заменить аналогичными другого цвета. Без изменения печатной платы подойдут и трёхразрядные индикаторы серии FYQ-3631 с такими же индексами.
         При необходимости можно установить на этой плате даже индикаторы серии FYT-5641 или FYT-5631 с высотой знака 0,56" (14 мм). В этом случае выводы микроконтроллера следует впаять в плату без панели, применить малогабаритные подстроечные резисторы, а индикаторы установить поверх микросхем, сточив по углам на нижней стороне корпуса каждого по четыре выступа.
         Для подключения к устройству внешних цепей применены винтовые зажимы. Часто возникающая проблема с изготовлением датчика тока (резистора R1) решена применением без всякой переделки шунта предела 10 А от мультиметра серии DT-830. В крайнем случае можно изготовить этот резистор из отрезка нихромовой, а лучше константановой проволоки.


         Питают измеритель от любого источника стабилизированного напряжения 7... 15 В. Обратите внимание, что минусовый вывод этого источника соединяется с измерительным зажимом "Общ.", к которому подключают и минус источника, напряжение которого следует измерить. Зажим "+Uх" соединяют с плюсом измеряемого источника, а нагрузку, ток которой предстоит измерять, включают между зажимами "+Ux" и "+Ix".
         При таком подключении результат измерения напряжения при максимальном токе нагрузки получается завышенным на 0,1 В относительно напряжения на нагрузке. Программным способом эта погрешность уменьшена в два раза (до 0,05 В, что меньше дискретности отсчёта напряжения). Во избежание увеличения этой погрешности сопротивление резистора R1 должно лежать в пределах 0,007...0,014 Ом.
         Программа микроконтроллера написана на языке ассемблера MPASM. В начале исходного текста программы (файла AV-meter.asm), прилагаемого к статье, директива ANODE EQU 0 присваивает переменной ANODE нулевое значение, что соответствует применению индикаторов с общим катодом. Для перехода к индикаторам с общим анодом достаточно заменить в этой директиве 0 на 1, после чего заново оттранслировать программу. Но если в программе ничего более не изменено, делать это нет необходимости, потому что к статье приложены готовые загрузочные (HEX) файлы для обоих типов индикаторов, о чём было сказано выше. Информация о необходимой конфигурации микроконтроллера, как принято для микроконтроллеров PIC, содержится в загрузочных файлах, поэтому при загрузке программы конфигурация устанавливается автоматически.
         Налаживание прибора выполняется предельно просто. Подав на зажим "+Ux" относительно зажима "Общ." напряжение, немного меньшее предела измерения, и контролируя его образцовым вольтметром, подстроечным резистором R3 следует добиться совпадения показаний индикатора HG1 и образцового вольтметра. Затем подключают между зажимами "+Ux" и "+Ix" в качестве нагрузки резистор достаточной мощности сопротивлением 0,5...2 Ом последовательно с образцовым амперметром. Регулировкой напряжения, подаваемого на зажим "+Uх", устанавливают ток, близкий к пределу измерения, но меньше его. Подстроечным резистором R8 уравнивают показания индикатора HG2 и образцового амперметра.

    Автор: Б. Балаев, г. Нальчик, Кабардино-Балкария
    Материал взят из: Журнала Радио 2014 №12

    В архиве: Исходный код программы на ассемблере и прошивка для микроконтроллера PIC12F675

    vstraivismertokainapr.rar [6,05 Kb] (cкачиваний: 1045)

    Комментарии