Цифровой амперметр на pic своими руками. Встраиваемый ампер-вольтметр на PIC12F675 и LED-индикаторах. Описание схемы платы управления

Кроме того, возможно применение как одного индикатора, так и двух. Причем, если применяются четырех разрядные, то крайний правый разряд отображает стилизованные единицы измерения "V" или "A". Но, в есть ограничение на применение индикаторов с ОА. При таком включении эммитерных повторителей, появляется "засвет" индикаторов измерительными токами. Т.о., при 2х индикаторной схеме целесообразно применять индикаторы с ОК, в таком случае измеряемые токи не будут оказывать влияния на открывание транзисторных ключей.
Если установлены кнопки, то нажатие кн "В" на левом индикаторе отобразит текущий режим этого индикатора, "-U-" или "-I-". Дальнейшее удержание сменит режим. Для исполнения с одним 3х разрядным индикатором, эта функция поможет вспомнить в каком режиме находится устройство, а для 2х индикаторного исполнения,- поменяет местами отображаемые значения напряжения и тока. В любом случае, для напряжения применена функция гашения незначащих нулей, т.е., если напряжение не превышает значения 9,9В, то на индикаторе мы не увидим первого нуля ("_Х.Х").
Кн "Н" позволяет войти в меню коррекции смещения тока. Это бывает необходимо в случае, если для улучшения линейности показаний тока, было применено смещение ОУ в линейный участок. Т.о., коррекцией можно удалить "лишние" показания. После кратковременного нажатие кнопки на левом индикаторе (если их два), появится сообщение "ShI" (смещение тока) и индикатор начнет мигать. Пока он мигает, кнопками можно откорректировать смещение. Через несколько секунд индикатор прекратит мигать и данные запишутся в энергонезависимую память. Заодно, в памяти сохранится режим отображения индикатора, который и будет появлятся при следующем включении.
Отображаемое напряжение 0,0...99,9В, ток.0 ... 99,9А(или 0,0... 9,99А, зависит от файла прошивки и подстройки ОС ОУ).

Доработка узла измерителя тока:

Автор доработки impuls . Идея simsim-а.
Весь смысл в организации смещения ОУ в линейный участок,
с последующей коррекцией показаний в сервис-меню.



У вас нет доступа к скачиванию файлов с нашего сервера
Файлы ПП для 2х3 и 2х4 индикаторов, любезно предоставил evg339

Файлы ПП для 2х3 и 2х4 индикаторов,размещенных вертикально, переделав ПП от evg339 , любезно предоставил VolosKR


У вас нет доступа к скачиванию файлов с нашего сервера


У вас нет доступа к скачиванию файлов с нашего сервера


У вас нет доступа к скачиванию файлов с нашего сервера

Файл прошивки для индикаторов с ОА
У вас нет доступа к скачиванию файлов с нашего сервера
Файл прошивки для индикаторов с ОК
У вас нет доступа к скачиванию файлов с нашего сервера

Доработка входного делителя напряжения:


Внимание! Делитель на 10


Файл прошивки внизу


Полярность индикаторов определяет положение резистора 1К с 11 н. контроллера.

Вариант с измерительными входами напряжения - RA0 и тока - RA1^

Файл прошивки дел.напр., 1:10 т.е. до 50В, 2х3,2х4,1х3,1х4 индикаторов и измерительные входы 13 и 12 ножки контроллера У вас нет доступа к скачиванию файлов с нашего сервера

Файл прошивки дел.напр., 1:20 т.е. до 100В, 1х3,1х4 индикаторов и измерительные входы 13 и 12 ножки контроллера. У вас нет доступа к скачиванию файлов с нашего сервера

Файл прошивки дел.напр., 1:20 т.е. до 100В, изменено измерение тока,1х3,1х4 индикаторов и измерительные входы 13 и 12 ножки контроллера. У вас нет доступа к скачиванию файлов с нашего сервера

Да! Отпала необходимость в подстроечнике по напряжению. Теперь, кнопочками строимся.

Coviraylhik подвёл итог (спасибо ему):

vaDCw2L8UAra0ra1.hex маленькая буква v ,дел.напр., 1:10 до 50В,
vaDCw2L4ra01.hex это для одного индикатора, (выбор V,A одной кнопкой)
vaDCw2L8UAra01i.hex Стандартная до 100В _0.0V , 0.00A дел.напр., 1:20
vaDCw2L8UAra01X.hex Стандартная до 100В, но перенесена точка 00.0А

Представленное здесь устройство пригодится, если у Вас есть блок питания с выходным напряжение 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.

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

Последовательный канал был протестирован с использованием программы компании Microsoft Hyper Terminal сконфигурированной параметрами 115,200 бод; 8 бит, четность, 1 стоп-бит; без аппаратного контроля.

Коротко, программа управляет одним светодиодным семисегментным индикатором за раз по линиям RA0 и RB7. Установка выхода RA0 в единицу и использование RB7, как входа активизирует индикатор с общим анодом DS3. Установка выхода RA0 в ноль и использование RB7 как входа, активизирует индикатор с общим катодом DS2. Использование RA0 как входа и установка выхода RB7 в единицу активизирует индикатор с общим анодом DS1, а при использовании RA0 как вход и установке выхода RB7 в ноль активизирует индикатор с общим катодом DS0. После успешной активизации одного индикатора, только одна из линий RB0 … RB6, конфигурируется как выход для управления одним светодиодным сегментом. Эта схема больше не имеет ограничения на питающее напряжение VDD - 3В или ниже - так как светодиоды включены встречно-параллельно, таким образом, прямое падение напряжения на одном светодиоде ограничивает обратное напряжение на другом. Использование красных светодиодов требует 1,6 В.

Рис.2 иллюстрирует новые аспекты идеи конструкции. Q1, R5, и R6 работают как эквивалентный переменный резистор, RX, который заряжает конденсатор C3. Вместо подключения RX к земле, просто подключите его к одной линии ввода-вывода - например RB0 - микроконтроллера. Если RB0 включен как выход в нулевом состоянии, значит первый аналоговый канал активизирован и измерительная подпрограмма подсчитывает импульсы заряда до величины 66% от VDD; затем, по таблице полученная величина задержки переводится в величину милливольт из трех цифр. Для увеличения количества аналоговых входов, вы можете подключить до семи цепей переменного резистора в параллель - таким образом, что каждый подключен между C3 и одной линией ввода-вывода, RB1 … RB7. Важно, что линии ввода-вывода подключены к индикаторам и так же активируют или отключают аналоговые каналы. Когда один аналоговый канал активизирован линией ввода-вывода выходом в низком состоянии, другие линии имеют высокое сопротивление и работают как входы, что отключает все остальные каналы. Соответственно, индикаторы отключены.

В схему на рис.1 так же добавлен простейший последовательный канал без добавления внешних компонентов. Если вы подключите две линии ввода-вывода, RA1 и RA2, сконфигурированные как выходы к RXD (Выв 2) и GND (Выв 5) разъема RS 232, вы сможете создавать, с помощью программы, положительное и отрицательное напряжение относительно земли порта RS 232 в ПК. Когда RA1 в единице, а RA2 в ноле, RXD имеет положительный потенциал 5 В относительно земли порта RS 232 в ПК. Когда RA1 в ноле, а RA2 в единице, RXD имеет отрицательный потенциал -5 В относительно земли порта RS 232 в ПК.

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

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

Основой схемы являются микроконтроллер 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мсек, для экономии. Можно было бы вывести на дисплей моргающий курсор, но сказали, что со светодиодом нагляднее и эффектнее. Вроде все. Успехов. К.В.Ю.


.

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


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

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

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


Итак, рассмотренная ранее схема примет вид, показанный на рис. 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 читателей.

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