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

Прошлым летом по просьбе знакомого разработал схему цифрового вольтметра и амперметра. В соответствии с просьбой данный измерительный прибор должен быть экономичный. Поэтому в качестве индикаторов для вывода информации был выбран однострочный жидкокристаллический дисплей. Вообще этот ампервольтметр предназначался для контроля разрядки автомобильного аккумулятора. А разряжался аккумулятор на двигатель небольшого водяного насоса. Насос качал воду через фильтр и опять возвращал ее по камушкам в небольшой прудик на даче.

Вообще в подробности этой причуды я не вникал. Не так давно этот вольтметр опять попал ко мне у руки для доработки программы. Все работает как положено, но есть еще одна просьба, чтобы установить светодиод индикации работы микроконтроллера. Дело в том, что однажды, из-за дефекта печатной платы, пропало питание микроконтроллера, естественно функционировать он перестал, а так как ЖК-дисплей имеет свой контроллер, то данные, загруженные в него ранее, напряжение на аккумуляторной батарее и ток, потребляемый насосом, так и остались на экране индикатора. Ранее я не задумывался о таком неприятном инциденте, теперь надо будет это дело учитывать в программе устройств и их схемах. А то будешь любоваться красивыми циферками на экране дисплея, а на самом деле все уже давно сгорело. В общем, батарея разрядилась полностью, что для знакомого, как он сказал, тогда было очень плохо.
Схема прибора с индикаторным светодиодом показана на рисунке.

Основой схемы являются микроконтроллер PIC16F676 и индикатор ЖКИ. Так, как все это работает исключительно в теплое время года, то индикатор и контроллер можно приобрести самые дешевые. Операционный усилитель выбран тоже соответствующий – LM358N, дешевый и имеющий диапазон рабочих температур от 0 до +70.
Для преобразования аналоговых величин (оцифровки) напряжения и тока выбрано стабилизированное напряжение питания микроконтроллера величиной +5В. А это значит, что при десятиразрядной оцифровке аналогового сигнала каждому разряду будет соответствовать – 5В = 5000 мВ = 5000/1024 = 4,8828125 мВ. Эта величина в программе умножается на 2, и получаем — 9,765625мВ на один разряд двоичного кода. А нам надо для корректного вывода информации на экран ЖКИ, чтобы один разряд был равен 10 мВ или 0,01 В. Поэтому в схеме предусмотрены масштабирующие цепи. Для напряжения, это регулируемый делитель, состоящий из резисторов R5 и R7. Для коррекции показаний величины тока служит масштабирующий усилитель, собранный на одном из операционных усилителей микросхемы DA1 – DA1.2. Регулировка коэффициента передачи этого усилителя осуществляется с помощью резистора R3 величиной 33к. Лучше, если оба подстроечных резистора будут многооборотными. Таким образом, при использование для оцифровки напряжения величиной ровно +5 В, прямое подключение сигналов на входы микроконтроллера запрещено. Оставшийся ОУ, включенный между R5 и R7 и входом RA1, микросхемы DD1, является повторителем. Служит для уменьшения влияния на оцифровку шумов и импульсных помех, за счет стопроцентной, отрицательной, частотно независимой обратной связи. Для уменьшения шумов и помех при преобразовании величины тока, служит П образный фильтр, состоящий из С1,С2 и R4. В большинстве случаев С2 можно не устанавливать.

В качестве датчика тока, резистор R2, используется отечественный заводской шунт на 20А – 75ШСУ3-20-0,5. При токе, протекающем через шунт в 20А, на нем упадет напряжение величиной 0,075 В (по паспорту на шунт). Значит, для того, чтобы на входе контроллера было два вольта, коэффициент усиления усилителя должен быть примерно 2В/0,075 = 26. Примерно — это потому, что у нас дискретность оцифровки не 0,01 В, а 0,09765625 В. Конечно, можно применить и самодельные шунты, откорректировав коэффициент усиления усилителя DA1.2. Коэффициент усиления данного усилителя равен отношению величин резисторов R1 и R3, Кус = R3/R1.
И так, исходя из выше сказанного, вольтметр имеет верхний предел – 50 вольт, а амперметр – 20 ампер, хотя при шунте, рассчитанном на 50 ампер, он будет измерять 50А. Так, что его можно с успехом установить в других устройствах.
Теперь о доработке, включающей в себя добавление индикаторного светодиода. В программу были внесены небольшие изменения и теперь, пока контроллер работает, светодиод моргает с частотой примерно 2 Гц. Время свечения светодиода выбрано 25мсек, для экономии. Можно было бы вывести на дисплей моргающий курсор, но сказали, что со светодиодом нагляднее и эффектнее. Вроде все. Успехов. К.В.Ю.


.

Один из вариантов готового устройства, реализованного Алексеем. К сожалению фамилии не знаю. Спасибо ему за работу и фото.

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

Схема принципиальная вольтамперваттметра

Печатная плата на DIP деталях получилась 45х50 мм. Также в архиве есть печатная плата для SMD деталей.

Для микроконтроллера PIC16F676 имеются две прошивки : в первой - возможность измерения напряжения, тока и мощности - vapDC.hex , а во второй - тоже, что и в первой, только добавлена возможность измерения ампер/часов (не всегда нужна) - vapcDC.hex .

Резистор, обозначенный серым на печатной плате, подключается в зависимости от индикатора: если используем индикатор с общими катодами, то резистор (1К), идущий от 11-ой ноги МК, подключается к +5, а если индикатор с общим анодом, то резистор подключаем к общему проводу.

В моём случае индикатор и общим катодом, резистор расположил под платой, от 11-ой ноги МК к +5.

Кратковременное нажатие кнопки "В " активизирует индикацию режима работы: напряжение «-U-», ток «-I-», мощность «-P-», счетчик ампер/часов «-C-». Некоторые экземпляры ОУ LM358 имеют положительное смещение на выходе, его можно компенсировать цифровой коррекцией измерителя. Для этого необходимо перейти в режим измерения тока, «-I-». Удерживать 7-8 сек кнопку "Н " до появления на индикаторе надписи «-S.-». Затем кнопками «В » и «Н » корректируем смещение «0». Если кнопки нажаты, на индикаторе непосредственно константа, отжаты - откорректированные показания тока. Выход из режима - одновременное нажатие клавиш "В " и "Н ". Результат - индикация «-3-», то есть запись в энергонезависимую память. Счетчик ампер/часов обнуляется удержанием кнопки "Н " 3-4 сек.

В своём случае ставлю только кнопку "В ", для переключения режима работы. Кнопку "Н " не ставлю, так как коррекция тока не требуется, если ОУ LM358 новый, то он практически не имеет смещения, а если и имеет, то незначительное. Сегментный индикатор ставлю не отдельной плате, которую можно легко прикрепить к корпусу устройства, например, встроить в переделанный БП ATX .

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

В итоге вся конструкция вольтамперватметра обошлась в 150 рублей, без фольгированного стеклотекстолита. С вами был Пономарёв Артём (stalker68 ), до новых встреч на страницах сайта Радиосхемы !

Обсудить статью ВОЛЬТАМПЕРВАТТМЕТР

Вольтамперметр на 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Гц.

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


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

Реализация вольтметра от Владимира

Добавлены ключи на аноды индикатора, что повысило яркость дисплея, и позволяет использовать более мощные дисплеи.

Две печатки под DIP14 и SO14

В схеме применены транзисторы BC847 (КТ3102).

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

Реализация сетевого вольтметра от Wali Marat

Печатка отличается от схемы заменой резисторов R2 и R3 на один подстроечный 4,7к и отсутствием стабилитрона VD1.

Также была прислана модифицированная схема сетевого вольтметра, она отличается более качественной схемой стабилизации напряжения питания вольтметра.

Фото сетевого вольтметра

Реализация вольтметра/амперметра от Wali Marat

Во все схемы от Wali Marat был добавлен стабилитрон VD1 на 5,1В(обозначен зелёным цветом), для защиты входа АЦП микроконтроллера от перенапряжения.

Когда появилась необходимость в измерительной части для лабораторного БП, рассматривая различные схемы из Интернета, сразу остановил выбор на семи сегментных LED индикаторах (возможная альтернатива - индикаторы типа 0802, 1602 - дороги и плохо читаемы). Так же, не хотелось каких либо переключений - и ток, и напряжение должны считываться в любой момент времени. По разным причинам, найденные готовые решения не устроили и я решил сконструировать свою схему.

Предлагаемое устройство предназначено для применения совместно с различными блоками питания и позволяет измерять напряжение в пределах от 0 до 99.9 Вольт с точностью 0.1 Вольт и ток потребления в пределах от 0 до 9.99 Ампер с точностью 0.01 ампер. Устройство собрано на дешевом микроконтроллере PIC12F675, как самом недорогом и распространенном из имеющих 10-разрядный АЦП, двух регистрах 74HC595 и двух 4-х или 3-х разрядных LED индикаторах. Общая стоимость примененных деталей, на мой взгляд, минимальна для подобных конструкций с одновременной индикацией напряжения и тока.

Описание работы схемы.

Напряжение высвечивается индикатором HL1, а ток - индикатором HL2. Одноименные сегментные выводы индикаторов объединены попарно и подключены к параллельным выходам регистра DD2, общие выводы разрядов подключены к регистру DD3. Регистры соединены последовательно и образуют 16-разрядный сдвиговый регистр, управляемый по трем проводам: выводы 11 - тактовые, 14 - информационный, а по перепаду на выводе 12 информация записывается в выходные защелки. Индикация обычная динамическая - через выходы регистра DD3 последовательно перебираются общие выводы индикаторов, а с выходов DD2 через токоограничительные резисторы R12-R19 включаются соответствующие выбранному разряду сегменты. Индикаторы могут быть как с общим анодом, так и с общим катодом (но оба одинаковые).

Микроконтроллер управляет индикацией по выводам GP2, GP4, GP5 в прерываниях от таймера TMR0 c интервалом 2 мс. Входы GP0 и GP1 используются соответственно для измерения напряжения и тока. В первых трех разрядах индикаторов высвечиваются собственно измеряемые значения, а в последнем разряде: в верхнем индикаторе - знак "V", а в нижнем - знак "A". В случае применения 3-х разрядных индикаторов эти знаки наносятся на корпус прибора. Никаких изменений программы в этом случае не требуется.

Измеряемое напряжение поступает на МК через делитель R1-R3, а ток - с выхода ОУ LM358 через резистор R10, который совместно с внутренним защитным диодом защищает вход МК от возможной перегрузки (ОУ питается напряжением +7..+15 Вольт). Коэффициент усиления ОУ задается делителем R5-R7, примерно равн 50 и регулируется подстроечным резистором R5. ФНЧ R4C2 сглаживает напряжение с шунта. Каждое измерение производится в течении всего 100 мкс. и без этой цепочки показания прибора будут "прыгать" при любой неравномерности измеряемого тока (а он редко когда бывает строго постоянным). Для тех же целей служит и конденсатор C1 в цепи измерения напряжения. Стабилитрон D1 защищает вход ОУ от перенапряжения в случае обрыва шунта.

Особо следует остановиться на цепочке R8,R9. Она задает дополнительное смещение примерно 0.25 милливольт на вход ОУ. Дело в том, что без нее имеется существенная нелинейность коэффициента усиления ОУ при низких значениях измеряемого тока (менее 0.3 А). На разных экземплярах микросхем этот эффект проявляется в разной степени, но погрешность при выше обозначенных значениях измеряемого тока слишком высока в любом случае. При установке R8 и R9 указанных на схеме значений (номиналы могут быть пропорционально изменены при сохранении того же соотношения, например 15 Ом и 300 кОм) погрешность измерения тока, обусловленная этим эффектом, не превышает единицы младшего разряда. Со всеми имеющимися у меня экземплярами микросхем, никакого подбора указанных резисторов не потребовалось. В общем случае, подбирается минимальное сопротивление R9, при котором на индикаторе еще светятся нули при отсутствии измеряемого тока, и увеличивается в 1.5-2 раза. Интересно, что среди многих подобных конструкций, где применяется та же микросхема, ни в одной статье нет и намека на данную проблему. Видимо, у меня одного оказались "неправильные" ОУ (приобретенные, кстати, в разное время в течении 10 лет). В любом случае, я категорически не рекомендую в целях "упрощения конструкции" исключать из схемы обычно отсутствующие в подобных схемах элементы C1,C2,R3,R8,R9 - это все-таки измерительный прибор, а не мигающая цифрами игрушка!

Хорошая точность и стабильность показаний, кроме того, обеспечивается полным "отделением" от микроконтроллера относительно сильноточных импульсных цепей управления индикаторами путем питания каждой цепи от отдельного стабилизатора 78L05. И даже слабые помехи от работы самого микроконтроллера мало влияют на результат, так как каждое измерение производится в режиме "SLEEP" с "заглушенным" тактовым генератором.

Микроконтроллер тактируется от внутреннего генератора для экономии выводов. Вход сброса через цепь R11,C3 подключен к "чистой" +5В. При включении-выключении БП, в котором используется конструкция, возможны значительные помехи, поэтому, для исключения "зависания" программы, включен таймер WDT.

Питается устройство от любого стабилизированного напряжения 7-15 Вольт (не больше 15В!), через стабилизаторы DA2, DA3. Конденсаторы C4-C8 - стандартные блокировочные. Для обеспечения низкой погрешности при токах, близких к верхнему пределу, напряжение питания ОУ должно быть как минимум на 2 Вольта больше напряжения микроконтроллера, поэтому питание на него берется до стабилизаторов.

Устройство собрано на печатной плате размерами 57 на 62 миллиметра.

Печатная плата устройства.

Для уменьшения габаритов платы, большая часть резисторов и конденсаторов применена в SMD корпусе типоразмера 0802. Исключениями являются: R1 - из-за рассеиваемой мощности, R12 - для упрощения топологии платы, электролитические конденсаторы и подстроечные резисторы. Конденсаторы C1 и C2 применены керамические, но в случае отсутствия таковых, их можно заменить электролитическими танталовыми. Стабилитрон - любой, с напряжением стабилизации 3-4.7 Вольт. Индикаторы можно заменить на FIT3641 или трехразрядные серий 3631 или 4031 без изменения рисунка платы. В случае необходимости, возможно даже применение без изменения рисунка более крупных индикаторов типа 5641 и 5631 (в этом случае микроконтроллер впаивается без колодки напрямую, подстроечные резисторы применяются малогабаритные, индикатор впаивается поверх микросхем, сточив четыре выступа снизу по углам индикатора). Для подключения устройства к внешним цепям применены винтовые зажимы. Часто возникающая проблема с изготовлением измерительного шунта решена путем применения готового шунта предела 10А от неисправного мультиметра серии D83x, абсолютно без всякой переделки. На мой взгляд, это оптимальный вариант - неисправный китайский мультиметр, думаю, найдется у многих радиолюбителей. В крайнем случае, его можно изготовить из нихромовой (а лучше из константановой) проволоки.

Выход блока питания подключается к точке "Ux" и далее, с той же точки в нагрузку. Общий провод подается в точку "COM", а в нагрузку уже подается с точки "COM-Out". При таком подключении, напряжение на индикаторе завышается на 0.1 Вольт при максимальном токе нагрузки. Программным способом эта погрешность уменьшена в два раза до половины погрешности дискретизации (0.05В максимум). Во избежание увеличения этой погрешности, следует выбирать такое сопротивление шунта, при котором не требуется при настройке изменять номиналы схемы (примерно 7-14 мОм). Подходящее напряжение питания на устройство подается на вывод "Upp".

Фотографии готового устройства

Программа микроконтроллера написана на Ассемблере в среде MPASM. Для обоих видов индикаторов программа одна за исключением одной директивы. В начале исходного текста программы (файл AV-meter.asm) в директиве “ANODE EQU 0” параметр имеет значение 0, что соответствует работе с индикаторами с общим катодом. Для применения индикаторов с общим анодом следует изменить значение этого параметра на 1, после чего заново оттранслировать программу. Так же, прилагаются готовые прошивки для микроконтроллера как для индикаторов с общим анодом, так и с общим катодом. При загрузке HEX-файла в программы типа , или , слово конфигурации загружается автоматически.

Настройка схемы предельно проста. Подав на вход напряжение, близкое к максимальному, подстроечником R2 следует выставить на верхнем индикаторе требуемое значение. Потом, подключают на выход устройства резистор 0.5-2 Ома в качества нагрузки и регулировкой напряжения устанавливают ток, близкий к максимальному. Подстроечником R5 выставляют соответствующие образцовому амперметру показания на нижнем индикаторе.

Во вложенном файле представлены прошивки, исходный код, модель и плата .

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DD1 МК PIC 8-бит

PIC12F675

1 В блокнот
DD2, DD3 Сдвиговый регистр

CD74HC595

2 В блокнот
DA1 Операционный усилитель

LM358N

1 В блокнот
DA2, DA3 Линейный регулятор

L78L05

2 В блокнот
D1 Стабилитрон

1N4734A

1 3.6-4.7 В В блокнот
HL1, HL2 Индикатор FYQ3641 2 FIT3641 В блокнот
C1, C2 Конденсатор 4.7 мкФ 2 SMD 0805 В блокнот
C3 Конденсатор 10 нФ 1 SMD 0805 В блокнот
C4 100мкФ х 10В 1 В блокнот
C5, C7 Конденсатор 100 нФ 2 SMD 0805 В блокнот
C6, C8 Электролитический конденсатор 20мкФ х 16В 2 В блокнот
R1 Резистор

39 кОм

1 0.5 Ватт В блокнот
R2, R5 Резистор подстроечный

1 кОм

2 В блокнот
R3 Резистор

1.2 кОм

1 SMD 0805 В блокнот
R4 Резистор

3 кОм

1 SMD 0805 В блокнот
R6 Резистор

1.5 кОм

1 SMD 0805 В блокнот
R7 Резистор

100 кОм

1 SMD 0805 В блокнот
R8 Резистор

150 Ом

1 SMD 0805 В блокнот
R9 Резистор