Chevroletavtoliga - Автомобильный портал

Простой встраиваемый ампервольтметр на PIC16F676. Вольтамперметр на PIC16F676. Радиотехника, электроника и схемы своими руками Вольтметр автомобильный на pic16f676

Вольтамперметр на PIC16F676

Этот проект - ампервольтметр (или вольтамперметр, если хотите) постоянного тока. Диапазон - до 99.9В и 9.9А (или 99.9А, зависит от прошивки).


Особенность его состоит в том, что он построен на распространённом микроконтроллере PIC16F676, однако, несмотря на это, имеет возможность одновременного отображения измеряемых напряжения и силы тока на четырёхсимвольных (или трёхсимвольных) семисегментных индикаторах, как с общим анодом, так и с общим катодом (задаётся одним резистором). При использовании четырёхсимвольного индикатора, последний сегмент отображает символ "U" для напряжения и "A" для тока. Ампервольтметр может работать и с одним индикатором, при этом кнопкой "B" можно выбирать, что будет на нём отображаться - напряжение или сила тока. В том случае, если установлены оба индикатора, этой кнопкой можно поменять местами их назначение. Кнопка "H" служит для коррекции показаний амперметра и выравнивания линейности этих показаний, если это необходимо.

up feb 2014: сейчас разработку можно найти по адресу:

Схема вольтамперметра приведена ниже. Как уже было сказано, он построен на распространённом микроконтроллере PIC16F676, на котором, в частности, собирают простые вольтметры и амперметры.


Нажмите на схему для увеличения
В виду ограниченного количества пинов у данного МК, применён регистр 74HC595. Аналогов с совпадающей цоколёвкой у этой микросхемы нет, но она недефицитна и часто применяется в подобных схемах для подключения индикаторов к МК. Для защиты выходов МК от перегрузки и повышения яркости индикаторов применены ключи на транзисторах. При использовании индикаторов с общим катодом, необходимо использовать транзисторы другой структуры, соединив их коллекторы не с +5В, а с массой, при этом резистор на 11 выводе микроконтроллера нужно переставить в другое положение. Возможно, Вам потребуется подобрать резисторы на выходе регистра и в базах транзисторов под свои индикаторы и транзисторы.

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

После включения индикаторы начинают светиться не сразу, а с задержкой в несколько секунд. Частота изменения показаний - около 9Гц.

Один из вариантов печатной платы для четырёх индикаторов с общим анодом. На рисунке кружками обведены необходимые исправления: нужно убрать перемычку, идущую на массу, и добавить одну маленькую перемычку.


Файлы к проекту.


Данное устройство реализовано на PIC16F676 с использованием встроенного десятиразрядного АЦП. Вольтметр позволяет измерять напряжение до 30В постоянного тока и может использоваться в настольных источниках питания либо различных приборных панелях.
Для отображения напряжения используется три семисигментный индикатора с общим анодом. Вывод информации на индикаторы осуществляется динамически(мультиплексированием), частота обновления составляет около 50 Гц.

Схема вольтметра:

Напряжение на выходе делителя
По умолчанию у PIC микроконтроллера, источник опорного напряжения АЦП установлен на VCC (+5 В в данном случае).
Необходимо сделать такой делитель напряжения, который снизит напряжение 30В до 5В. Несложно рассчитать Vin / 6 ==> 30/6 = 5, коэффициент деления равен 6. Так же делитель должен обладать большим сопротивлением, чтобы как можно меньше влиять на измеряемое напряжение.

Расчет
АЦП - 10bit значит максимальное количество отсчётов 1023.
Максимальное значение напряжения 5В, тогда получаем 5/1023 = 0,0048878 В/Отсчёт. В таком случае, если количество точек АЦП составляет 188, то напряжение на входе 188 * 0.0048878 = 0.918 вольт

С использованием делителя напряжения, максимальное напряжение 30В, тогда 30/1023 = 0,02932 В/Отсчёт.
И если количество точек АЦП составляет 188, то напряжение на входе 188 * 0,02932 = 5,5 В.

Конденсатор 0.1uF делает АЦП более стабильным, так как десятиразрядные АЦП достаточно чувствительны.
Стабилитрон на 5,1В предназначен для защиты АЦП от превышения допустимого напряжения.

Печатная плата:

Фото готового устройства:

Точность и калибровка
Общая точность схемы достаточно велика, она полностью зависит от значений сопротивлений резисторов 47кОм и 10кОм, следовательно чем точнее будут выбраны комплектующие, тем точнее будут показания.
Калибровка вольтметра осуществляется подстроечным резистором 10кОм, установите сопротивление около 7,5кОм и контролируйте показания другим прибором.
Также для настройки можно использовать любой стабилизированный источник на 5 или 12 вольт, в этом случае вращайте подстроечный резистор до тех пор, пока не получите правильное значение на дисплее.

Проект в Proteus:

Материалы этой статьи были опубликованы в журнале Радиоаматор - 2013, № 9

В статье представлена конструкция цифрового амперметра-вольтметра, предназначенного для совместной работы с универсальной платой управления лабораторными блоками питания. Его особенностью является отсутствие собственного датчика тока. При измерении тока используется датчик тока платы управления. Рассмотренная конструкция идеально подходит для переделки компьютерных блоков питания в лабораторные источники питания постоянного тока.

Переделка компьютерных блоков питания в лабораторные оказалась весьма востребована. В поисках вариантов схемы управления и защиты была обнаружена «Универсальная плата управления лабораторными блоками питания» (Радио-ежегодник, 2011, № 5, стр. 53). Схема платы управления оказалась очень простой и эффективной, удовлетворяющая всем требованиям управления и защиты мощного лабораторного источника питания постоянного тока.

Для индикации выходного напряжения и тока описанная в вышу упомянутой статье конструкция показалась весьма громоздкой и дорогой, к тому же мы считаем избыточным одновременную индикацию напряжения и тока в источнике питания такого класса. В то же время получили большую популярность вольтметры, собранные на дешевом микроконтроллере PIC16F676 с трехзначным светодиодным индикатором. Использование готового такого вольтметра оказалось не очень удобно из-за сложности с переводом его в режим амперметра. Поэтому мы решили разработать свою схему переключаемого ампервольтметра с наглядной индикацией режима измерения, используя к тому же датчик тока с платы управления.

Основные технические характеристики ампервольтметра:

  • напряжение питания – 7…35 В постоянного тока;
  • диапазон измерения напряжения – 0…50,0 В;
  • диапазон измерения тока – 0,02…9,99 А;
  • шаг измерения напряжения – 0,1 В;
  • шаг измерения тока – 0,01 А;
  • переключение режима измерения – двухполюсной переключающей кнопкой с фиксацией;
  • индикация режима измерения – семисегментным индикатором в виде букв «А» или «U».

Описание схемы платы управления

Для начала рассмотрим схему «универсальной платы управления блоками питания», показанную на рисунке:

Она собрана на одной микросхеме счетверенного операционного усилителя DA1 и в данном случае предназначена для управления ШИМ-контроллером типа TL494 компьютерного блока питания. Схемы переделки компьютерных БП, использующих ШИМ-контроллер такого типа уже неоднократно описаны, так что мы не будет на этом останавливаться. Схема содержит измерительные усилители тока на элементах DA1.1, DA1.4 и напряжения на элементах DA1.2, DA1.3, с выхода которых сигнал управления подается на ШИМ-контроллер БП. Переменными резисторами R13, R14 изменяется опорное напряжение выходных усилителей каналов измерения напряжения и тока соответственно. Если ток в нагрузке не превышает значения, установленного регулятором R14, то блок управления будет работать в режиме стабилизации напряжения, заданного регулятором R13. При этом будет гореть индикатор HL3. Если же ток в нагрузке достигнет значения, установленного регулятором R14, тогда, если выключатель SA1 разомкнут, блок управления перейдет в режим ограничения выходного тока. При этом будет гореть индикатор HL2. Если же выключатель SA1 будет замкнут, то при достижении установленного тока в нагрузке напряжение на выходе снизится до нуля и загорится индикатор HL1. Для выхода из режима токовой отсечки достаточно разомкнуть выключатель SA1.

Подробнее о работе и наладке схемы управления можно прочесть в оригинальной статье: «Встраиваемая универсальная плата управления лабораторными блоками питания»

Описание схемы ампервольтметра

Принципиальная электрическая схема ампервольтметра показана на рисунке ниже:

Основу ампервольтметра представляет микроконтроллер DD1, выполняющий функцию аналогово-цифрового преобразования входного сигнала, поступающего на вход RA0 (цепь IN), и вывод результата измерения на трехразрядный семисегментный светодиодный индикатор с общими катодами HG1. Переключение канала измерения осуществляется кнопкой SA1. Второй полюс кнопки SA1 задействован для подачи сигнала на микроконтроллер (цеп SW), который используется при обработке результата измерения.

Индикация динамическая с частотой обновления 100Гц. В связи с тем, что катоды индикатора подключены непосредственно к выводам микроконтроллера, в целях снижения нагрузки каждый разряд зажигается в 2 приема по 4 сегмента. Для исключения частого перемигивания младшего разряда индикации частота обновления показаний индикатора искусственно снижена и осуществляется 3 раза в секунду. При превышении возможности отображения измеренных значений на индикаторе высветятся три черточки.

Для индикации выбранного режима измерения применен одноразрядный семисегментный индикатор с общим катодом HG2 с символом меньшего, чем в HG1, размера. Сегменты «b», «c», «e» и «f» индикатора HG2 зажжены постоянно. В режиме измерения напряжения переключателем SA1 в цепь SW подается плюс питания, который через резистор R11 зажигает сегмент «d», формируя на индикаторе символ «U». При этом высокий уровень на базе транзистора VT1 держит его закрытым. При переключении в режим измерения тока в цепь SW подается общий провод. Транзистор VT1 открывается, подавая питание на сегменты «a» и «g», и на индикаторе формируется символ «А».

Питание схемы ампервольтметра берется от питания ШИМ-контроллера компьютерного БП и стабилизируется с помощью интегрального регулируемого стабилизатора DA1. Делителем R3, R4 на выходе стабилизатора задается напряжение около 3 В. Такое напряжение питания схемы выбрано для обеспечения возможности использовать полный диапазон АЦП микроконтроллера в режиме измерения тока из-за низкого уровня входного сигнала.

Конструкция и детали

Элементы схемы управления и ампервольтметра собраны на печатных платах из односторонне фольгированного стеклотекстолита размером 40х50 мм и 58х37 мм соответственно. Чертежи печатных плат и схемы расположения элементов показаны на рисунке ниже. Чертежи показаны со стороны установки элементов.

Плата схемы управления разведена таким образом, чтобы быть закрепленной на выводах переменных резисторов R13, R14. Для удобства наладки в конструкции использованы выводные радиокомпоненты.

Для обеспечения компактности в конструкции ампервольтметра использованы в основном элементы для поверхностного монтажа: резисторы формфактора 1206 и конденсаторы 0805. Следует отметить нестандартную установку микросхемы микроконтроллера в DIP корпусе. Он закреплен методом поверхностного монтажа со стороны проводников, при этом концы его выводов выгнуты наружу. В качестве переключателя SA1 использована кнопка типа PS-850L, используемая в старых компьютерах в качестве переключателя «turbo».

Индикаторы HG1 (с размером символа 0,56 inch) и HG2 (0,39 inch) можно использовать любые аналогичные с общим катодом, лучше с красным цветом свечения, так как «зеленые» светятся довольно тускло.

Сборка и наладка

Об использовании схемы управления и способе ее наладки можно прочесть в оригинальной статье. Схема ампервольтметра в наладке не нуждается. Необходимо лишь подобрать номиналы резисторов R1 и R2 во входных делителях каналов измерения тока и напряжения соответственно. Это лучше всего сделать экспериментальным путем, используя в качестве образцового амперметра-вольтметра цифровой мультиметр.

Следует отметить, что амперметр будет работать плохо, если сигнал на выходе источника питания будет сильно «шуметь». Поэтому следует тщательно подойти к подбору конденсаторов С1, С2 схемы управления. Нами собрано уже более шести источников питания с такой схемой управления и в некоторых блоках питания номиналы конденсаторов С1, С2 приходилось значительно увеличивать по сравнению с указанными в схеме.

Заключение

Опыт эксплуатации блоков питания с вышеописанной схемой управления показал несостоятельность ее использования для переделки компьютерных блоков питания в лабораторные из-за значительного уровня пульсаций выходного напряжения - БП реально «поет»! Для создания лабораторных БП сейчас используется

Представленное здесь устройство пригодится, если у Вас есть блок питания с выходным напряжение 0-10 В. Именно такие пределы измерения "заложены" в схему представленную на рисунке. В ее основе - микроконтроллер Atmega8 (U1) в стандартном корпусе DIP. Он может показаться громоздким, но был выбран из-за широкой популярности, а также по причине того, что программаторы, для данного микроконтроллера очень распространены. Atmega8 используют большинство радиолюбителей и в Интернете можно найти немало схем с этим микроконтроллером. Поэтому, если Вам не понравится данный вольтметр, Atmega8 не останется лежать без дела.

Цифровой вольтметр на Atmega8. Схема принципиальная.

Показатели измерения вольтметра будут отображаться на цифровом семисегментном трехзначном индикаторе (DISP1). Дам немного информации по поводу него.

7-сегментный цифровой LED индикатор - это индикатор, состоящий из семи светодиодов, установленных в форме цифры 8. Зажигая или выключая соответствующие LED-ы (сегменты) можно отображать цифры от нуля до девяти, а так же некоторые буквы. Обычно используется несколько цифровых индикаторов, чтобы создать многозначные цифры - для этого индикаторы снабжены сегментом в виде запятой (точки) - dp. В итоге, у одного индикатора 8 сегментов, хотя называют их по числу цифровых сегментов 7-сегментным.

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


В конструкции используется индикатор красного свечения GNT-2831BD-11 с общим анодом. Резисторы R1-R8 определяют ток в индикаторе и, следовательно, его яркость. Их сопротивление не должно превышать максимальный выходной ток (40 мА), даже когда все 8 светодиодов горят сразу. В схеме используется несимметричный 10-битный АЦП (аналого-цифровой преобразователь), находящийся в AVR. Диапазон выходного значения составляет 0-999. Когда будет достигнут предел этих значений, появится символ "---".

На входе вольтметра (in) установлен делитель напряжения из резисторов R9, R10 и R11, обеспечивая диапазон измерения до 10 В с погрешностью 0,01 В. На выводе 23 микроконтроллера U1 делитель формирует напряжение, которое не должно превышать 2,5 В. Входное сопротивление вольтметра близко к 1мОм. Для калибровки вольтметра подайте на его вход точно известное напряжение и, перемещая подстроечный резистор R11, добейтесь на индикаторе таких же показаний.

Частота обновления вольтметра составляет около 4 Гц. Схема питается от стабилизированного источника напряжением 5 В. Потребляемый ток устройства составляет около 25 мА (большая часть потребления приходится на индикатор). Компоненты C1 и C2 расположите как можно ближе к микроконтроллеру.

Правильно выставленные биты представлены на рисунке ниже.


Если Вам необходимы пределы измерения до 100 В, измените значение R10 на 9,1мОм и R11 на 2,2 мОм. Тогда Вы получите желаемый диапазон измерения с погрешностью 0,1 В и входным сопротивлением около 10мОм. В этом случае придется изменить и место точки индикатора, чтобы она отображалась за двумя символами, а не за первым, как на схеме. Для этого вывод 28 микросхемы U1 оставьте свободным, а к общему проводу подключите вывод 27. Теперь вместо символов в виде 0.00 будут отображаться 00.0.


Продолжаем разбираться с вариантами реализации вольтметра - амперметра на базе микропроцессора.
Не забудьте архив с файлами, они нам сегодня потребуются.

При желании поставить крупные индикаторы, придется решать вопрос ограничения тока потребления через порты МК. В данном случае необходимо ставить буферные транзисторы на каждый разряд индикатора.

Индикаторы больших размеров


Итак, рассмотренная ранее схема примет вид, показанный на рис. 2. Добавилось три транзистора VT1-VT3 буферного каскада на каждый разряд индикатора. Установленный буферный каскад инвертирует выходной сигнал МК. По сему, входное напряжение на базе VT2 инверсно относительно коллектора указанного транзистора, а значит подходит для подачи на вывод формирования запятой. Это дает возможность убрать транзистор VT1, который был ранее в схеме на рис. 1, заменив последний развязывающим резистором R12. Не забудьте, что изменились и номиналы резисторов в цепях базы транзисторов VT1-VT3.
Если желаете поставить индикаторы с нетрадиционно большими габаритами, то придется в цепи коллекторов указанных транзисторов поставить низкоомные (1 – 10 Ом) резисторы для ограничения бросков тока при их включении.

Логика работы МК для этого варианта нуждается только в небольшом изменении программы в части инверсии выходного сигнала управления разрядами, а именно портов RA0, RA1, RA5.
Рассмотрим только то, что изменится, а именно подпрограмму, уже известную нам под условным названием «Функция формирования динамической индикации» в Листинге №2 (смотрите папку «тр_ОЕ_30V» в архиве или первую часть статьи):

16. void Indicator (){ 17. while (show_digit < 3) { 18. portc = 0b111111; // 1 -> C 19. if (show_digit == 2){ delay_ms(1); } 20. porta = 0b100111; 21. show_digit = show_digit + 1; 22. switch (show_digit) { 23. case 1: { 24. if (digit1 == 0) { } else { 25. Cod_to_PORT(DIGIT1); 26. PORTA &= (~(1<<0)); //0 -> A0 27. } break;} 28. case 2: { 29. Cod_to_PORT(DIGIT2); 30. PORTA &= (~(1<<1)); //0 -> A1 31. break;} 32. case 3: { 33. Cod_to_PORT(DIGIT3); 34. PORTA &= (~(1<<5)); //0 -> A5 35. break;} } 36. Delay_ms(6); 37. if (RA2_bit==0) {PORTA |= (1<<2);// 1 -> A2 38. Delay_ms(1);} 39. if ((show_digit >= 3)!= 0) break; 40. } show_digit = 0;}


Сравните оба варианта. Инверсия сигнала по порту RA (строка 20 Листинга №2) легко читается, поскольку записано в двоичной форме. Достаточно совместить выводы МК и двоичное число. В строках 19 и 37 появились немного странные условия, которых не было вначале. В первом случае: «задержать сигнал логического нуля на порту RA1 во время индикации второго разряда». Во втором: «в случае если на порте RA2 логический нуль, инверсия». Когда будете компилировать финальную версию программы можете их удалить, а вот для симуляции в PROTEUSе они нужны. Без них не будет нормально индицироваться запятая и сегмент «G».
Почему? - спросите Вы, ведь первый вариант прекрасно работал.

В завершение, вспомните слова кузнеца из фильма «Формула Любви»: «…если один человек построил, другой завсегда разобрать может!».
Удачи!

Читательское голосование

Статью одобрили 27 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.

Похожие публикации