Где купить цифровой вольтметр на пик контроллере. Цифровой вольтметр на Atmega8

Где купить цифровой вольтметр на пик контроллере. Цифровой вольтметр на Atmega8


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

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

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


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

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


Данное устройство реализовано на 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:

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


.

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

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


Самое обсуждаемое
Значение имени Ильяс. Что значит имя Ильяс Значение имени Ильяс. Что значит имя Ильяс
К чему снится ликер. Магия чисел. Сонник: к чему снится Автомобиль К чему снится ликер. Магия чисел. Сонник: к чему снится Автомобиль
Девятые зимние олимпийские игры Американец берет автограф Девятые зимние олимпийские игры Американец берет автограф


top