Вольтметр и амперметр на 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мсек, для экономии. Можно было бы вывести на дисплей моргающий курсор, но сказали, что со светодиодом нагляднее и эффектнее. Вроде все. Успехов. К.В.Ю.
Скачать проект
.
Один из вариантов готового устройства, реализованного Алексеем. К сожалению фамилии не знаю. Спасибо ему за работу и фото.
41 комментарий к “Вольтметр и амперметр на PIC16F676”
имеются цифровые амперметры собранные на PIC16F676 (заводское изготовление).задача состоит в том что бы они программировались. ( на подобие регулятора температуры или будильника) гистерезис не нужен. просто при достижении программируемого числа и показания амперметра, исходил сигнал. например зажигался светодиод.что нужно добавить или изменить в прошивке? помогите пожалуйста, буду очень благодарен.
Привет, Борис. Самое простое, это написать программу заново.
большое спасибо.очень хороший сайт. собрал несколько приборов из серии 628а. все работает. регуляторы температуры запустились сразу. с таймером немножко повозился. заработал. хотелось бы собрать регулятор температуры до 1000 градусов на термопаре. схемы не нашел. одно дело собирать тут ничего сложного. а вот программировать... годы не те. если можете то по помогите в этом .и амперметр. это может помочь многим радиолюбителям. ведь судите сами программируемый амперметр- это готовое средство защиты по току любого электрического прибора. во много раз лучше всяких АЗС.
Привет, Борис. Спасибо за оценку. Кстати программированием я занялся на 59 году своей жизни. На сайт выкладываю разработки, которые в первую очередь интересны мне. Я просто физически не могу удовлетворять все ваши просьбы, в месяц на сайте в среднем бывают 50000 человек.
Приветствую, Валерий, нигде не нашел, какой ЖКИ был использован. Просьба указать марку.
Привет, Игорь. ЖКИ купил на ебэй, так что ни каких опознавательных знаков на нем нет, а вообще подойдет любой с контроллером 44780.
Здравствуйте Валерий Юрьевич. Собрал ваш вольтметр и амперметр на Pic16F676 и однострочном ЖК Уменя высветились 6 квадратиков,пробывал впаять двухсточный такаяже бида,только на двух строчном горит вся строка, подскажите в чём может быть дело?
Привет, Григорий. Трудно из далека конкретно указать на неисправность. 250 человек скачало программу, ни кто не жаловался, да у меня все работает нормально. В таких случаях в основном виноваты ошибки в монтаже, КЗ между дорожками, грязь на плате после монтажа, плохие контакты в панельках микросхемы.
Здравствуйте Валерий Юрьевич.Светодиод у меня мигает,это говарит отом что контроллер работает.Монтаж проверя всё впорядке,контраст тоже работает,может быть причина в ЖК?Его я покупал в чип и дипе.Уже незнаю на что думать.
И ещё вопрос,кондёры С1,С2,С5 по2микрофарады?Я вместо 2МК впаял 2,2
Вы бы дали адрес почты,я сфоткаю пришлю вам.
Привет, Григорий. К сожалению проверить это можно только заменой. Извини, но помочь тебе из своего дома не могу.
Эта небольшая разница роли не играет.
Доброго времени суток. Скажите вашу схему можно использовать для лабораторное блока питания? И возможно использовать другой шунт, например от старого китайского мультиметра, мне ток большой не надо до 5А.
Привет, Алексей. Это устройство и предназначено для блоков питания. И шунт можно поставить другой. Резистором 11 откорректируешь показания амперметра.
Спасибо, что ответили. Буду собирать.
У меня еще один вопрос, дисплей только одна строчный?или можно любой. Подключил 2×8 «Winstar» дак кубики одни показывает, вроде контроллер прошился нормально.
Все разобрался, дисплей неправильно подключил
Вопрос. А можно в прошивку добавить сотые, чтоб считал? (Пример U=5,21В, I=3,55А)
Привет, Алексей. Ура!!! Я за тебя рад!
Привет, Алексей. Изменением одной прошивки не получится, надо будет вводить переключатель диапазонов измерения, а это повлечет за собой и изменение всей схемы.
Привет. Ясно. Схему собрал все работает, правда пока тока на макете. Печатку сделаю и можно устанавливать в БП. Хочу сделать по размерам дисплея, чтоб одно устройство получилось.
Привет, Алексей. Когда устройство будет готово, то если не жалко, можешь прислать рисунок печатной платы для других начинающих радиолюбителей
Привет. Конечно пришлю, правда не раньше двух месяцев, уехал на работу. Как сделаю напишу.
День добрый.
Как обещал сделал печатную плату, тока как её прикрепить, не могу понять!? Сделал правда под себя и пока еще не проверял в железе, так, что если будут ошибки можете ругать.Как соберу все в железе постараюсь выложить фото, если будет интересно.
Доброое время суток, Валерий!
Собираюсь пределать своё зарядное к аккумулятору, хочу сделать управление зарядом и индикацию режимов именно на таком ПИКе с ЖКИ 2×8, и наткнулся на Вашу схему. Да это же — готовая половина того, что я планирую! За схему — БОЛЬШОЕ спасибо! Вот только в архиве — скомпилированный файл. Вы можете предоставить исходник, который я возьму за основу для своей прошивки, или Вы обеспокоены авторским правом?
Привет, не знаю как величать, в силу своего возраста, я обеспокоен только своим здоровьем, а исходник вышлю.
Привет Алексей! Здравствуйте форумчане! Алексей блок питания на 5+! Надеюсь, эту поделку не будешь продавать? Хотелось бы увидеть осциллограммы пульсаций под нагрузкой, хотя это уже совсем другая тема. Скоро заеду к тебе друг мой, будем обмывать твою поделку!
Доброое время суток! У меня ЖКИ 2×8 «Winstar». Можно подправить прошивку , передвинуть знаки В И А от показаний и написать на английском V и A, U=10.2 V I=3.3 A .Заранее благодарен.
Сейчас нет физической возможности заниматься программированием.
Здравствуйте,собрал схему вашего ампервольтметра но она не запускается, на экране дисплея горят правые восемь квадратиков.Дисплей из китая модель 1601А, программатор genius G540 при загрузке прошивки выдает предуприждение. Non configuration worde in the HEX file. Please set it after the ioading, но файл записывается. Дисплей подключаю так,
RC0-D4,RC1-D5,RC2-D6,RC3-D7,RC4-RS, RC5-E, не могу понять что не так.
Привет, Павел, сперва по идее необходимо разобраться с программатором. По всей вероятности он не видит установленные биты конфигурации. Вообще, у PIC контроллеров вся конфигурация записана непосредственно в хексе. Попробуй поставить галочки фьюзов вручную, вот строчка из программы __CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT. Надеюсь, разберешься.
MLCRE-0, FOSC2:FOSC0-100 и все заработало, спасибо за помощь.
Заработало ток показания прыгают, например I=6A, а показания меняются от 0 до 8А, а U=14,7B, а показания меняются от 13.9 до 15.5В.Кондеры подкидывал и параллельно шунту и параллельно резистору обратной связь усилителя тока.
Привет, Павел. Не спеши, подумай, и все получится. Схема рабочая, полторы тысячи скачек и вопрос только у тебя.
Доброго дня Валерий Юрьевич , собрал в железе и при тестировании нашел что в раене 4х ампер показания измерителя с мультиметром совпадают, если ниже то уменьшаются на 150ма гдето(к примеру на мультиметре 450ма а на дисплее измерителя 0.3А). Если выше 4х ампер то при 7,5А на мультиметре а на дисплее измерителя 7,7А. Попробовал различные шунты и разные схемы включения LM358- результат тотже. Как можно добиться линейности показаний.
Привет Сергей. На этих элементах очень сложно. Но можно улучшить линейность, если, 1 — Применить двухполярное питание для ОУ. 2 — Заменить ширпотреб LM358 на более совершенную. Можно попробовать DA822.
Ну почему все суют эти жк-индикаторе, а не светодиодные.
Привет, Zlo. Потому, что программа проще, контроллер можно применить дешевый, с меньшим количеством выводов. Индикация на жки статичная и не мерцает. Разводка печатной платы проще.
Или в схеме ошибка или я чего-то не понимаю. Как измеряется напряжение? Может надо было минус от аккумулятора на землю пустить?
Привет, Виктор, спасибо за коммент. В статье схему исправил. Минус должен быть соединен с общим проводом