Pic12f675 индикатор от nokia вольтметр. Ампервольтметр на pic12f675 - измерительная техника - инструменты. Индикаторы больших размеров

Сегодня расскажу как сделать универсальный несложный измерительный прибор с возможностью измерения напряжения, тока, потребляемой мощности и ампер-часов на дешёвом микроконтроллере 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 – статья, в которой расскажу о самостоятельной сборке цифрового вольтметра постоянного тока с пределом 0-50В. В статье приводится схема вольтметра на PIC16F676, а также печатная плата и прошивка. Вольтметр использовал для организации индикации в .

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

  • Дискретность отображения результата измерения 0,1В;
  • Погрешность 0,1…0,2В;
  • Напряжение питание вольтметра 7…20В.
  • Средний ток потребления 20мА

За основу конструкции взята схема автора Н.Заец из статьи «Миливольтметр». Сам автор очень щедрый и охотно делится своими разработками, как техническими, так и программными. Однако одним из существенных недостатков его конструкций (на мой взгляд) является морально-устаревшая элементная база. Использование которой, в нынешнее время, не совсем разумно.

На рисунке 1 показана принципиальная схема авторский вариант.

Бегло пробегусь по основным узлам схемы. Микросхема DA1 – регулируемый стабилизатор напряжения, выходное напряжение которого регулируется подстроенным резистором R4. Такое решение не очень хорошее, так как для нормальной работы вольтметра необходим отдельный источник постоянного тока напряжением 8В. И это напряжение должно быть неизменным. Если входное напряжение будет меняться, то и выходное напряжение будет изменяться, а это не допустимо. В моей практике такое изменение привело к перегоранию PIC16F676 - микроконтроллера.

Резисторы R5-R6 – это делитель входного (измеряемого) напряжения. DD1 - микроконтроллер, HG1-HG3 – три отдельных семисегментных индикатора, которые собраны в одну информационную шину. Применение отдельных семисегментных индикаторов сильно усложняют печатную плату. Такое решение тоже не очень хорошее. Да и потребление у АЛС324А приличное.

На рисунке 2 показана переделанная принципиальная схема цифрового вольтметра.

Рисунок 2 – Схема принципиальная вольтметра постоянного тока.

Теперь рассмотрим, какие изменения были внесены в схему.

Вместо регулируемого интегрального стабилизатора КР142ЕН12А было принято решение использовать интегральный стабилизатор LM7805 с постоянным выходным напряжением +5В. Тем самым удалось надежно стабилизировать рабочее напряжение микроконтроллера. Еще один плюс такого решение - это возможность применения входного (измеряемого) напряжения для питания схемы. Если, конечно, это напряжение больше 6В, но меньше 30В. Чтобы подключиться к входному напряжению, достаточно только замкнуть перемычку(jamper). Если сам стабилизатор сильно греется, его необходимо установить на радиатор.

Для защиты входа АЦП от перенапряжения в схему был добавлен стабилитрон VD1.

Резистор R4 совместно с конденсатором С3 - рекомендованы производителем, для надежного сброса микроконтроллера.

Вместо трех отдельных семисегментных индикаторов был применен один общий.

Для разгрузки отдельных ножек микроконтроллера были добавлены три транзистора.

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

Таблица 1 – Перечень деталей для вольтметра на PIC16F676
Позиционное обозначение Наименование Аналог/замена
С1 Конденсатор электролитический - 470мкФх35В
С2 Конденсатор электролитический - 1000мкФх10В
С3 Конденсатор электролитический - 10мкФх25В
С4 Конденсатор керамический - 0,1мкФх50В
DA1 Интегральный стабилизатор L7805
DD1 Микроконтроллер PIC16F676
HG1 7-ми сегментный LED индикатор KEM-5631-ASR (OK) Любой другой маломощный для динамической индикации и подходящий по подключению.
R1* Резистор 0,125Вт 91 кОм SMD типоразмер 0805
R2* Резистор 0,125Вт 4,7 кОм SMD типоразмер 0805
R3 Резистор 0,125Вт 5,1 Ом SMD типоразмер 0805
R4 Резистор 0,125Вт 10 кОм SMD типоразмер 0805
R5-R12 Резистор 0,125Вт 330 Ом SMD типоразмер 0805
R13-R15 Резистор 0,125Вт 4,3 кОм SMD типоразмер 0805
VD1 Стабилитрон BZV85C5V1 1N4733
VT1-VT3 Транзистор BC546B КТ3102
XP1-XP2 Штыревой разъем на плату
XT1 Клеммник на 4 контакта.

Рисунок 3 – Плата печатная вольтметра на PIC16F676 (сторона проводников).

На рисунке 4 – печатная плата сторона размещения деталей.

Рисунок 4 –Плата печатная сторона размещения деталей (плата на рисунке не в масштабе).

Что касается прошивки, то изменения были внесены не существенные:

  • Добавлено отключение незначащего разряда;
  • Увеличено время выдачи результата на семисегментный LED индикатор.

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

Внешний вид вольтметра показан на рисунках 5-6.

Рисунок 5 – Внешний вид вольтметра.

Рисунок 6 – Внешний вид вольтметра.

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

Интересное видео

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


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

Ставшее уже традиционным соединение светодиодного цифрового индикатора с микроконтроллером через преобразователь последовательного кода в параллельный 74HC595 требует использовать три вывода микроконтроллера для управления преобразователем кода и ещё по одному выводу для каждого разряда индикатора. Следовательно, для четырёхразрядного индикатора требуются семь выводов. Это не даёт возможности применять такие индикаторы с маловыводными микроконтроллерами, например, c PIC12F675, имеющим всего шесть выводов (не считая выводов питания).

На втором этапе нарастающий перепад уровня на выводе 12 микросхемы 74HC595 переписывает нулевое содержимое сдвигового регистра в регистр хранения. Это полностью гасит индикатор.

На третьем этапе происходит загрузка информации в сдвиговый регистр микросхемы 74HC595 последовательным кодом, формируемым микроконтроллером на выводе 14 микросхемы. На её вывод 11 поступают тактовые импульсы.

На четвёртом этапе нарастающим перепадом уровня на выводе 12 микросхемы 74HC595 информация из её сдвигового регистра поступает в регистр хранения, причём благодаря высоким уровням на катодах разряды индикатораостаются погашенными.

На пятом этапе на общем катоде разряда, для которого предназначен выведенный на выходы микросхемы 74HC595 параллельный код, программа устанавливает низкий уровень, включая его элементы в соответствии с этим кодом. На этом обработка прерывания завершается, а установленное состояние индикатора сохраняется неизменным до следующего прерывания.

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

Теперь расскажем о вольтметре, в котором использован описанный принцип.

Основные технические характеристики

Измеряемое напряжение, В............... 0...80

Дискретность измерения, В.......0,1

Погрешность.................0,5% + ед. мл. разр.

Напряжение питания, В............7...15

Ток потребления, мА, не более........................30

Схема вольтметра показана на рис. 1. В нём применена поэлементная динамическая индикация. В каждый момент времени высокий уровень установлен на анодах одной группы одноимённых элементов всех разрядов индикатора HG1. На общих катодных выводах разрядов, в которых эти элементы должны светиться, устанавливают низкий уровень, в противном случае - высокий. Обратите внимание, что одноимённые элементы могут быть включены одновременно во всех разрядах, но в каждом разряде в текущий момент времени включён только один элемент. Именно поэтому выбрано подключение анодов элементов к выходам микросхемы DD2, нагрузочная способность которых выше, чем выходов микроконтроллера.

Рис. 1. Схема вольтметра

При периоде прерываний 2 мс частота обновления изображения на индикаторе равна 64 Гц и его мигание на глаз незаметно. Выбранный способ динамической индикации также позволил вдвое уменьшить число резисторов (R4-R7), ограничивающих ток через светодиоды индикатора.

У микроконтроллера PIC12F675-I/P (DD1) остаются не занятыми в динамической индикации линии ввода-вывода GP0 и GP3. Первая использована как вход АЦП, на неё подают через делитель R1R2 измеряемое напряжение. На линии GP3 в отсутствие перемычки S1 благодаря резистору R3 установлен высокий логический уровень, что служит сигналом, переводящим вольтметр в режим калибровки. Если перемычка установлена, уровень на этом выводе низкий и вольтметр работает в обычном режиме.

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

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

После калибровки выключите вольтметр и окончательно установите перемычку S1, иначе при следующем включении всё придётся повторить заново. Вольтметр может работать и без калибровки, если при его первом включении перемычка S1 уже установлена. В этом случае он использует коэффициент, записанный в программе, но погрешность может превысить 10 %. Об этом предупредит включённая точка в крайнем правом разряде индикатора.

Аналого-цифровое преобразование производится в "спящем" режиме микроконтроллера для уменьшения помех со стороны его работающих узлов. Из этого состояния он автоматически выходит по окончании преобразования.

Питается прибор напряжением 5 В, полученным с помощью интегрального стабилизатора напряжения DA1. Использовать вместо указанного на схеме стабилизатор 78L05 можно только в крайнем случае, так как стабильность его выходного напряжения на порядок хуже. Без ухудшения параметров можно применить стабилизатор LP2951. Стабилитрон VD1 на напряжение 5,6 В совместно с внутренним защитным диодом микроконтроллера предохраняют последний от повреждения при превышении измеряемым напряжением допустимого значения. Без ограничителя напряжение питания микроконтроллера в этой ситуации может критически увеличиться.

Устройство собрано на печатной плате размерами 40x36 мм из односторонне фольгированного стеклотекстолита толщиной 1,5 мм, показанной на рис. 2. Большинство резисторов и конденсаторов - типоразмера 0805 для поверхностного монтажа. Резистор R1 для надёжной работы при повышенном напряжении применён выводной мощностью 0,5 Вт. Конденсатор C1 можно установить и керамический, и выводной оксидный, для которого на плате предусмотрено посадочное место, обозначенное C1". Индикатор FYQ-3641AHR-11 можно заменить другим из серии 3641А или трёхразрядным серии 3631А без переделки платы. Фотоснимок собранной платы прибора показан на рис. 3.

Уже несколько лет занимаюсь радиоэлектроникой, но стыдно признаться, у меня все еще нет нормального блока питания. Запитываю собранные устройства тем, что попадется под руку. От всяких полудохлых батареек и трансформаторов с диодным мостом без какой либо стабилизации напряжения и ограничения выходного тока. Такие извращения довольно опасны для собранной конструкции. Наконец-то решился собрать нормальный блок питания. А начал сборку с ампервольтметра. Надо конечно было начинать с другого, но как уже есть. Поскольку понемногу занимаюсь программированием то решил сам разработать показометр. В качестве экрана стоит дисплей от Nokia-1202. Наверно я уже всех замучал с этим дисплеем, но он в 3 раза дешевле, чем 2x16 HD44780 (по крайней мере у нас). Вполне паябельный разъем и вообще неплохие характеристики. Короче - хороший вариант для измерителя напряжения и тока.

Электрическая схема цифрового ампервольтметра для БП

Рисунок платы цифрового ампервольтметра

В первой и второй строчке отображается усредненное значение напряжения и тока из 300 замеров АЦП. Это сделано для большей точности измерения. В третьей строчке выводится сопротивление нагрузки, рассчитанное по закону Ома. Хотел сперва сделать, чтоб выводилась потребляемая мощность, но сделал сопротивление. Может позже переделаю на мощность. В четвертой строчке выводится температура измеряемая датчиком DS18B20. Он запрограммирован измерять температуру от 0 до 99 градусов Цельсия. Его надо установить на радиатор выходного транзистора, или на какой нибудь другой элемент схемы, где есть сильный нагрев.

К микроконтроллеру можно так же подключить кулер для охлаждения радиатора транзистора. Он будет изменять свои обороты при изменении температуры измеряемой датчиком DS18B20. На ножке PB3 присутствует ШИМ сигнал. Кулер подключается к этому выводу через силовой ключ. В качестве силового ключа лучше всего использовать MOSFET транзистор. При температуре в 90 градусов у вентилятора будут максимальные обороты. Датчик температуры можно и не устанавливать. В этом случае в четвертой строчке просто высветится надпись OFF. Кулер подключаем на прямую. На выходе PB3 будет 0.

В архиве есть два варианта прошивки. Одна на максимально измеряемый ток в 5 ампер, а вторая до 10 ампер. Максимально измеряемое напряжение - 30 вольт. Коэффициент усиления ОУ LM358 по расчетам выбран 10. Для разных прошивок нужно подобрать шунт. Не у всех есть возможность измерять сотые доли ома и прецизионные резисторы. Поэтому в схеме есть два подстроечных резистора. Ними можно подкорректировать показания измерений.

Там-же в архиве есть и печатная плата. Есть небольшие различия на фото - там она немножко подправленная. Удалена одна перемычка и размер меньше по высоте на 5 мм. Стабильность показаний ампервольтметра высокая. Иногда плавает только на сотые доли. Хотя сравнивал всего лишь с моим китайским тестером. Для меня этого вполне хватит.

Всем спасибо за внимание.

АРХИВ:

Модернизированый вариант

Добавил только отображение еще и десятой части мощности.

Вот переделал для измерения до 50А. Шунт 0,01 ом. Коэффициент усиления ОУ примерно от 6 до 7. Нужно будет пересчитать резисторы. Фьюзы те же, что и раньше.

Хочу представить вашему вниманию модернизированную версию показометра для лабораторного блока питания. Добавилась возможность отключать нагрузку при превышении определенного установленного заранее тока. Прошивку улучшенного вольтамперметра можно скачать ниже. Схема цифрового измерителя тока и напряжения.

В схему так же добавилось несколько деталей. С органов управления - одна кнопка и переменный резистор номиналом от 10 килоом до 47 килоом. Его сопротивление не критично для схемы, и как видно может варьироваться в довольно широких пределах. Немножко изменился и внешний вид на экране. Добавил отображение мощности и ампер*часов.

Переменная тока отключения сохраняется в EEPROM. По этому после выключения не нужно будет все настраивать заново. Для того, чтоб зайти в меню установки тока нужно нажать на кнопку. Поворачивая ручкой переменного резистора надо установить ток, при котором произойдет отключение реле. Оно подключено через ключ на транзисторе к выводу PB5 микроконтроллера Atmega8.

В момент отключения на дисплее высветиться надпись о том, что максимальный установленный ток был превышен. После нажатия на кнопку мы перейдем снова в меню установки максимального тока. Нужно еще раз нажать на кнопку, чтоб перейти в режим измерения. На выход PB5 микроконтроллера подастся лог 1 и при этом включится реле. Такое слежение за током имеет и свои минусы. Защита не сможет сработать мгновенно. Срабатывание может занять несколько десятков миллисекунд. Для большинства подопытных устройств данный недостаток не критичен. Для человека эта задержка не видна. Все происходит сразу. Новая печатная плата не разрабатывалась. Кто захочет повторить устройство может немного подредактировать печатную плату от предыдущего варианта. Изменения будут не значительны.

По всем возникшим вопросам обращаемся на форум. Спасибо за внимание. Ампервольтметр допилил Бухарь.

АРХИВ:
Форум


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

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

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


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

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