Встраиваемый ампер-вольтметр на PIC12F675 и LED-индикаторах. Цифровой вольтамперметр на 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 читателей.

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

ВОЛЬТАМПЕРМЕТР НА МИКРОКОНТРОЛЛЕРЕ В ЛАБОРАТОРНЫЙ БП

В наш век прогресса у любого радиолюбителя самый главный прибор при наладке устройств это лабораторный блок питания (БП). БП может быть как самодельный, так и заводского исполнения. Отличаются по сложности, может быть собран всего на одном линейном регуляторе напряжения, например LM317T, может быть собран на операционных усилителях, на транзисторах. БП может иметь защиту от КЗ, или наоборот, регулируемое ограничение выходного тока. А более совершенные БП имеют переключение режима «Защита от КЗ/Ограничение выходного тока». Но почти все БП оборудованы в лучшем случае вольтметром. Цифровой вольтметр сложен в изготовлении и настройке, и чаще всего требует применения специализированных микросхем АЦП, например, КР572ПВ2А.

Но вся сложность заключается не в изготовлении платы, а в необходимости применения двухполярного питания +5 В, -5 В для питания указанной микросхемы. Для этого нужен отдельный маломощный БП или отдельные обмотки трансформатора. Таким образом, данные АЦП не очень зарекомендовали себя в радиолюбительской практике. Что же происходит? На дворе XXI-й век, а дизайна любительских БП не коснулся прогресс? Необходимо исправить эту ситуацию! Задумавшись над этим, я пришел к выводу, что надо сделать собственное устройство индикации параметров БП на микроконтроллере. В связи с этим и была разработан модуль - цифровой вольтамперметр. Который и будет рассмотрен далее более подробно. Данная разработка предложена вам для повторения и возможной доработки, так как она выполнена в пилотном варианте и требует доработок..(Планировалась функция вычисления потребляемой мощности и отображение на индикаторе, но до этого не дошли лапы, а при испытании обнаружены баги при измерении тока.) Но даже в таком варианте данная схема вполне работоспособна и может быть предложена для повторения даже начинающим радиолюбителям. Основной упор делался на то, чтобы сохранить минимальную сложность, чтобы не оставить за бортом начинающих радиолюбителей. Вот что у меня получилось.

Схема и рисунок печатной платы представлены далее.

Устройство обеспечивает следующие параметры и функции:

  • 1. Измерение и индикация выходного напряжения блока питания в диапазоне от 0 до 100 В, с дискретностью 0,01 В
  • 2. Измерение и индикация выходного тока нагрузки блока питания в диапазоне от 0 до 10 А с дискретностью 10 мА
  • 3. Погрешность измерения — не хуже ±0,01 В (напряжение) или ±10 мА (ток)
  • 4. Переключение между режимами измерения напряжение/ток осуществляется с помощью кнопки с фиксацией в нажатом положении.
  • 5. Вывод результатов измерения на большой четырехразрядный индикатор. При этом три разряда используются для отображения значения измеряемой величины, а четвертый - для индикации текущего режима измерения.
  • 6. Особенность моего вольтамперметра - автоматический выбор предела измерения. Смысл в том, что напряжения 0-10 В отображаются с точностью 0,01 В, а напряжения 10-100 В с точностью 0,1 В.
  • 7. Реально делитель напряжения рассчитан с запасом, если измеряемое напряжение увеличивается больше 110 В (ну может кому-то надо меньше, можно исправить это в прошивке), на индикаторе отображаются символы перегрузки - O.L (Over Load). Аналогично сделано и с амперметром, при превышении измеряемого тока больше 11 А вольтамперметр переходит в режим индикации перегрузки.

Вольтметр осуществляет измерение и индикацию только положительных значений тока и напряжения, причем для измерения тока используется шунт в цепи «минуса». Устройство выполнено на микроконтроллере DD1 (МК) ATMega8-16PU.

Технические параметры ATMEGA8-16PU :

  • Ядро AVR
  • Разрядность 8
  • Тактовая частота, МГц 16
  • Объем ROM-памяти 8K
  • Объем RAM-памяти 1K
  • Внутренний АЦП, кол-во каналов 23
  • Внутренний ЦАП, кол-во каналов 23
  • Таймер 3 канала
  • Напряжение питания, В 4.5…5.5
  • Температурный диапазон, C 40...+85
  • Тип корпуса DIP28

Количество дополнительных элементов схемы — минимально. (Более полные данные на МК можно узнать из даташита на него). Резисторы на схеме — типа МЛТ-0,125 или импортные аналоги, электролитический конденсатор типа К50-35 или аналогичный, напряжением не менее 6,3 В, емкость его может отличаться в большую сторону. Конденсатор 0,1 мкФ — керамический импортный. Вместо DA1 7805 можно применить любые аналоги. Максимальное напряжение питания устройства определяется максимальным допустимым входным напряжением этой микросхемы. О типе индикаторов сказано далее. При переработке печатной платы возможно применение иных типов компонентов, в том числе SMD.

Резистор R… импортный керамический, сопротивление 0,1 Ом 5 Вт, возможно применение более мощных резисторов, если габариты печатки позволяют установить. Также нужно изучить схему стабилизации тока БП, возможно там уже есть токоизмерительный резистор на 0,1 Ом в минусовой шине. Можно будет использовать по возможности этот резистор. Для питания устройства может использоваться либо отдельный стабилизированный источник питания +5 В (тогда микросхема DA1 не нужна), либо нестабилизированный источник +7…30 В (с обязательным использованием DA1). Потребляемый устройством ток не превышает 80 мА. Следует обращать внимание на то, что стабильность питающего напряжения косвенно влияет на точность измерения тока и напряжения. Индикация — обычная динамическая, в определенный момент времени светится только один разряд, но из-за инерционности нашего зрения мы видим светящимися все четыре индикатора и воспринимаем как нормальное число.

Использовал один токоограничительный резистор на один индикатор и отказался от необходимости дополнительных транзисторных ключей, т. к. максимальный ток порта МК в данной схеме не превышает допустимые 40 мА. Путем изменения программы можно реализовать возможность использования индикаторов как с общим анодом, так и с общим катодом. Тип индикаторов может быть любым — как отечественным, так и импортным. В моем варианте применены двухразрядные индикаторы VQE-23 зеленого свечения с высотой цифры 12 мм (это древние, мало-яркие индикаторы, найденные в старых запасах). Здесь приведу его технические данные для справки;

  • Индикатор VQE23, 20x25mm, ОК, зеленый
  • Двухразрядный 7-сегментный индикатор.
  • Тип Общий катод
  • Цвет зеленый (565nm)
  • Яркость 460-1560uCd
  • Десятичные точки 2
  • Номинальный ток сегмента 20mA

Ниже указано расположение выводов и габаритный чертеж индикатора:

  • 1. Анод H1
  • 2. Анод G1
  • 3. Анод A1
  • 4. Анод F1
  • 5. Анод B1
  • 6. Анод B2
  • 7. Анод F2
  • 8. Анод A2
  • 9. Анод G2
  • 10. Анод H2
  • 11. Анод C2
  • 12. Анод E2
  • 13. Анод D2
  • 14. Общ катод К2
  • 15. Общ катод К1
  • 16. Анод D1
  • 17. Анод E1
  • 18. Анод C1

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

Сначала необходимо пропаять перемычки (переходные отверстия), которых много под индикаторами и возле микроконтроллера.
. Затем микроконтроллер DD1. Для него можно использовать цанговую панельку, при этом ее надо устанавливать не до упора в плату, чтобы можно было пропаять выводы со стороны микросхемы. Т.к. не было под лапой цанговой панельки, было решено впаять МК намертво в плату. Для начинающих не рекомендую, в случае неудачной прошивки 28-ногий МК очень неудобно заменять.
. Затем все прочие элементы.

Эксплуатация данного модуля вольтамперметра не требует объяснения. Достаточно правильно подключить питание и измерительные цепи. Разомкнутый джемпер или кнопка - измерение напряжения, замкнутый джемпер или кнопка - измерение тока. Прошивку можно любым доступным для вас способом. Из Fuse-битов, что необходимо сделать, так это включить встроенный генератор 4 МГц. Ничего страшного не случится, если их не прошить, просто МК будет работать на 1 МГц и цифры на индикаторе будут сильно мерцать.

А вот и фотография вольтамперметра:

Я не могу дать конкретных рекомендаций, кроме вышесказанных, о том, как подключить устройство к конкретной схеме блока питания — ведь их такое множество! Надеюсь, эта задача действительно окажется такой легкой, как это я себе представляю.

P.S. В реальном БП данная схема не проверялась, собрана как макетный образец, в будущем планируется сделать простой регулируемый БП с применением данного вольтамперметра. Буду благодарен тем, кто испытает в работе данный вольтамперметр и укажет на существенные и не очень недостатки. За основу взята схема от ARV Моддинг блока питания с сайта радиокот. Прошивку для c исходными кодами для CodeVision AVR C Compiler 2.04, и плату в формате ARES Proteus можно скачать на . Также прилагается рабочий проект в ISIS Proteus. Материал предоставил - i8086.

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

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

Две печатки под 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 Резистор
Похожие статьи

© 2024 ap37.ru. Сад и огород. Декоративные кустарники. Болезни и вредители.