Принципиальная схема и описание самодельного цифрового амперметра, выполненного на микроконтроллере ATtiny13, программа и печатная плата.

Как-то раз в руки к автору этих строк попало весьма интересное устройство,рожденное в СССР, в далеком 1976 году -его просто отдали за ненадобностью. Звали это устройство АДЗ-101У2, и оно представляло собой типичный образчик советского конструктивизма: тяжелый двадцатикилограммовый "чемодан", с ручкой для переноски в верхней части и мощным однофазным трансформатором внутри.

Но самое интересное, что у этого "чемодана" напрочь отсутствовала задняя панель - и вовсе не потому, что прибор успел ее "посеять", нет. А дело здесь было в том, что обе его панели являлись... передними! С одной своей стороны "чемодан" представлял собой сварочный аппарат, а с другой - зарядное устройство для автомобильных аккумуляторов.

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

Суть проблемы состояла в том, что штатный амперметр "зарядника" скрылся в неизвестном направлении, и предыдущий владелец аппарата подыскал ему вполне "равноценную" замену - автомобильный амперметр, скрученный с какого-то военного грузовика, и имеющий очень "информативную" шкалу в ±30 А!

Понятно, что следить за зарядом аккумулятора (а ток зарядки - всего лишь 3-6 А!) при помощи такого вот прибора, мягко говоря, проблематично - как будто и нет его вовсе...

Поэтому решено было заменить "грузовиковый показометр" на какой-либо более или менее адекватный прибор, с внятной шкалой на 0-10 А. Идеальным кандидатом на эту роль представлялся стрелочный щитовой амперметр со встроенным шунтом - один из тех, которые раньше использовались практически во всех "зарядниках" советского производства, да и много где еще.

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

А так-так в то время автор еще не был знаком с бескрайними просторами китайских чудосайтов, то руки вновь потянулись к паяльнику, в результате чего и было разработано устройство, схема которого приведена на рис.1, а характеристики - в табл.1:

Таблица 1. Характеристики устройства.

Принципиальная схема

Для вывода результатов измерения в данном амперметре решено было использовать пару 7-сегментых LED-индикаторов. Такие индикаторы, несмотря на некоторую свою архаичность по сравнению с новомодными LCD-модулями типа 16хх, обладают также и рядом неоспоримых преимуществ: они гораздо надежнее и прочнее; не портятся и не мутнеют от контакта с нефтепродуктами (а замасленные руки в гараже - дело обычное, цифры на LED-индикаторах ярче и гораздо "читабельнее" - особенно издали; и к тому же, никакой холод в гараже светодиодам не страшен - в отличие от ЖК, который на морозе попросту "слепнет".

Ну а последним доводом в пользу светодиодной матрицы - в контексте данной разработки - стал тот факт, что длинный 1602 просто-напросто не вписывался по размерам в штатное отверстие для амперметра (круглое и очень небольшое!) на корпусе ЗУ. Определившись с типом индикатора, встал другой вопрос - какой же микроконтроллер использовать в качестве основы для данного устройства.

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

Однако, здесь все оказалось не так уж и просто - ведь для измерения тока в состав МК обязательно должен входить аналогово-цифровой преобразователь, но инженеры фирмы Atmel почему-то не оснастили "2313-й" данной функцией... Другое дело семейство Меда: эти чипы обязательно имеют "на борту" модуль АЦП.

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

Под "классическим подходом к проектированию" здесь подразумевается так называемый "принцип необходимого минимума" (горячим приверженцем которого, в пику новомодным "Ардуинам", является и автор этих строк), согласно которому любую систему следует проектировать с использованием минимально возможного количества ресурсов; а окончательный результат должен содержать в себе как можно меньше незадействованных элементов. Поэтому, в соответствии с этим принципом - простому прибору -простой микроконтроллер, и никак иначе!

Правда, и не все простые МК подойдут для поставленной задачи. Взять, к примеру, ATtinyl3 - в нем есть АЦП, он прост и недорог; да вот только линий ввода-вывода - для подключения матрицы из двух "семисегментников" - у него явно маловато...

Хотя, если немного пофантазировать, то такая проблема вполне разрешима - при помощи копеечного счетчика К176ИЕ4 и несложного алгоритма, этим счетчиком управляющего.

Вдобавок, у такого подхода есть даже положительные стороны - во-первых, отпадает необходимость "навешивать" на каждый сегмент индикатора по токоограничительному резистору (генераторы тока уже имеются в выходных каскадах счетчика); а во-вторых, в данной схеме можно использовать индикатор как с общим катодом, так и с общим анодом - для перехода на "общий анод" нужно изменить подключение транзисторов VT1 и VT2, выв. 6 DD2 подключить к линии +9 В через резистор 1 кОм, а левый вывод R3 соединить с "землей".

Рис. 1. Принципиальная схема самодельного амперметра (до 10А) на микроконтроллере ATtiny13.

Для того, чтобы управлять счетчиком при помощи МК, нужно задействовать всего две линии: одну - для сигнала счета (С), а другую -для сигнала сброса (R).

Причем, в ходе испытания устройства выяснилось, что КМОП-микросхема К176ИЕ4, будучи подключенной напрямую к линиям МК, вполне надежно работает с его ТТЛ-уровнями - без какого-либо дополнительного согласования.

А еще две линии МК управляют ключами VТ1-VТ2, создавая динамическую индикацию. Фрагмент исходного кода, где реализована процедура управления счетчиком DD2, приведен в листинге:

Рис. 2. Процедура управления К176ИЕ4.

Процедура написана на низкоуровневом языке AVR-Assembler; однако, она легко может быть переведена и на любой язык высокого уровня. В регистре Temp процедура получает число, которое необходимо отправить в счетчик К176ИЕ4 для отображения на индикаторе; линия 1 порта В микроконтроллера подключена ко входу сброса счетчика (R), а линия 2 - к его счетному входу (С).

Чтобы избежать мерцания чисел в момент переключения счетчика, перед вызовом данной процедуры необходимо погасить оба разряда, закрыв транзисторы VT1 и VT2 подачей лог.О на линии 0 и 4 порта В МК; ну а после того, как процедура отработает, уже можно зажигать тот или иной разряд индикатора. Кстати, благодаря счетчику К176ИЕ4, к любому МК можно подключить индикаторную матрицу 7x4, задействовав для этого только 6 линий ввода-вывода (две - для управления счетчиком, и еще четыре - для динамического переключения разрядов).

А если в "напарники" к К176ИЕ4 добавить еще один счетчик -декадный К176ИЕ8 - чтобы использовать его для "сканирования" разрядов; то появится возможность подключить к МК индикаторную матрицу величиной до 10 знакомест, выделив для этого всего лишь 5 линий ввода-вывода (две - для управления К176ИЕ8; две - для К176ИЕ4; и еще одна - для гашения индикатора в момент счета К176ИЕ4)!

В подобном случае алгоритм динамической индикации будет сводиться к управлению счетчиком К176ИЕ8, что во многом аналогично алгоритму передачи цифры в счетчик К176ИЕ4, приведенному в листинге выше.

К недостаткам же такого подключения индикаторной матрицы - помимо использования "лишней" микросхемы - можно отнести необходимость введения в схему дополнительного питания +9 В, т.к. попытки запитать КМОП-счетчики от +5 В, увы, не увенчались успехом...

В качестве индикатора в данном устройстве применим практически любой сдвоенный "семисегментник" с общими катодами, предназначенный для работы в схемах с динамической индикацией. Допустимо использовать и четырехразрядную матрицу, задействовав у нее только два из четырех имеющихся разрядов.

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

И если все делать "по уму", то неплохо было бы выделить - для динамического управления этой самой запятой - еще одну ножку МК (т.к. в К176ИЕ4 никаких средств для управления запятыми не предусмотрено) - чтобы на нее "повесить" вывод индикатора, отвечающий за запятые.

Но, поскольку все линии ввода-вывода МК уже были заняты, то бороться с этой проблемой пришлось отнюдь не самым изящным способом: обе запятые решено было оставить постоянно зажженными, запитав соответствующий вывод индикаторной "матрицы" от линии +9 В через токоограничительный резистор R3 (подбирая его сопротивление, можно выровнять яркость свечения запятой относительно остальных сегментов); а лишнюю запятую в младшем разряде (крайнюю правую) просто замазать каплей черной нитрокраски.

С технической точки зрения такое решение сложно назвать идеальным; но в глаза "загримированная" подобным образом запятая совершенно никак не бросается...

В качестве датчика тока используются два параллельно соединенных резистора R1 и R2, мощностью по 5 Вт каждый. Вместо пары R1 и R2 вполне можно установить и один резистор сопротивлением 0,05 Ом - в таком случае его мощность должна быть не менее 7 Вт.

Более того, в "прошивке" микроконтроллера предусмотрена возможность выбора сопротивления измерительного шунта - в данной схеме может быть применен как 0,05-омный, так и 0,1-омный датчик тока.

Для того, чтобы задать микроконтроллеру сопротивление шунта, использующегося в конкретном случае, необходимо записать определенное значение в ячейку памяти EEPROM, расположенную по адресу 0x00 - для сопротивления 0,1 Ом это может быть любое число меньше 128 (в таком случае МК, будет делить результат измерений на 2); а при использовании шунта сопротивлением 0,05 Ом в эту ячейку, соответственно, следует записать число больше 128.

И если планируется эксплуатировать устройство с приведенным на схеме 0,05-омным шунтом, то о записи указанной ячейки можно и вовсе не беспокоиться, т.к. у нового (или "стертого в ноль") МК во всех ячейках памяти итак будет число 255 (0xFF).

Питать прибор можно как от отдельного источника - напряжением не менее 12 В, так и от силового трансформатора самого зарядного устройства. Если питание будет производиться от трансформатора ЗУ, то желательно задействовать для этого отдельную обмотку, никак не связанную с зарядной цепью; однако, допускается питать амперметр и от одной из зарядных обмоток.

В этом случае напряжение питания нужно брать до выпрямительного моста "зарядника" (т.е., непосредственно с обмотки), а в разрыв обоих проводов питания амперметра включить по резистору 75 Ом/1 Вт. Резисторы необходимы для зашиты "отрицательных" диодов моста VD1-4 от прохождения через них части зарядного тока.

Дело в том, что если подключить прибор к зарядной обмотке, не установив этих резисторов то, учитывая общую "землю" у моста VD1-4 и диодного моста зарядного устройства, около половины зарядного тока аккумулятора будет возвращаться в обмотку не через мощные диоды выпрямителя ЗУ, а через "отрицательное" плечо моста VD1-4, вызывая сильный нагрев маломощных 1N4007.

Установка же этих резисторов ограничит ток питания прибора и оградит диодный мост VD1-4 от протекания зарядного тока, который теперь, практически полностью, будет течь по "правильной" цепи - через мощные диоды выпрямителя ЗУ.

Принципиальная схема

Печатная плата для данного амперметра разрабатывалась под конкретные посадочные места в корпусе конкретного ЗУ; ее чертеж приведен на рис.3.

Индикаторная матрица устанавливается отдельно - на небольшой платке (отрезке "макетки" 30x40), которая крепится к основной плате болтами М2,5 через дистанционные втулки, со стороны монтажа; и соединяется с ней 10-жильным шлейфом.

Еще одной частью получившегося "бутерброда" является декоративная передняя панель из оргстекла, покрашенная с обратной стороны нитрокраской из баллончика (незакрашенным должен остаться только небольшой прямоугольник - "окошко" для индикатора).

Передняя панель также крепится к основной плате со стороны монтажа (болтами М3 с дистанционными втулками - ими же прибор крепится и к корпусу ЗУ). Печатные дорожки сильноточной цепи, идущие к резисторам R1 и R2, следует выполнить как можно более широкими, и припаять к ним выводы резисторов на всю длину, заодно усилив монтаж толстым слоем припоя.

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

Рис. 3. Печатная плата для схемы цифрового амперметра на микроконтроллере.

Программа

При записи "прошивки" в МК его необходимо настроить для работы на частоте 1,2 МГц, от внутреннего тактового генератора. Для этого частоту тактирования следует выбрать равной 9,6 МГц, и включить внутренний делитель такта на 8.

Для увеличения надежности работы также желательно активировать внутренний супервайзор питания (модуль BOD), настроив его на сброс МК при "просадке" питающего напряжения ниже 2,7 В.

Все настройки производятся при помощи записи соответствующих значений в конфигурационные Fuse-ячейки: SUT1=1, SUT0=0, CKDIV8=0, BODLEVEL1 =0, BODLEVELO=1, WDTON=1. Остальные "фъюзы" можно оставить по умолчанию.

Прошивка для микроконтроллера и печатная плата формата Sprint Layout - Скачать .

Рис. 3. Плата амперметра на Attiny13 в сборе.

Рис. 4. Плата амперметра на Attiny13 в сборе (вид с обратной стороны).

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

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

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


.

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

Когда появилась необходимость в измерительной части для лабораторного БП, рассматривая различные схемы из Интернета, сразу остановил выбор на семи сегментных 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 Резистор

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

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

Две печатки под DIP14 и SO14

В схеме применены транзисторы BC847 (КТ3102).

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

Реализация сетевого вольтметра от Wali Marat

Печатка отличается от схемы заменой резисторов R2 и R3 на один подстроечный 4,7к и отсутствием стабилитрона VD1.

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

Фото сетевого вольтметра

Реализация вольтметра/амперметра от Wali Marat

Во все схемы от Wali Marat был добавлен стабилитрон VD1 на 5,1В(обозначен зелёным цветом), для защиты входа АЦП микроконтроллера от перенапряжения.

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

Основные характеристики устройства:

  • основа устройства - микроконтроллер AVR ATmega8 компании ;
  • диапазон измеряемого напряжения: 0 В - 30 В, шаг 10 мВ;
  • диапазон измеряемого тока: 0 А - 99 А, шаг 10 мА (шаг зависит от значения сопротивления шунта);
  • два вариатна конструкции: с микроконтроллером в TQFP и PDIP корпусе;
  • односторонняя печатная плата;
  • компактная конструкция;
  • отображение измеряемых величин на ЖК дисплее (однострочном или двухстрочном) на базе контроллера HD44780 .

Измерение тока проводится с использованием шунта, который подключен последовательно с нагрузкой в цепи отрицательной (общей) клеммы блока питания. Питание устройство получает от основного блока питания (т.е. от блока питания который вы модернизируете). Дополнительной функцией, которую выполняет микроконтроллер, является управление вентилятором охлаждения радиатора выходного транзистора (транзисторов) блока питания.

При использовании двухстрочного дисплея (и соответствующего ПО для микроконтроллера) имеется возможность отображения значения сопротивления подключенной нагрузки. А при использовании блока питания для зарядки Li-Pol аккумуляторов имеется функция отображения электрической емкости аккумуляторов, что дает возможность оценить их состояние и уровень разряда.

Внутреннее разрешение вольтамперметра по диапазону измерения тока рассчитывается согласно выражения:

Разрешение[мА] = 1/(R[Ом]×3.2)

Кроме того, падение напряжения на шунте не должно превышать 2.4 В, поэтому значение сопротивления шунта должно быть меньше 2.4/Imax[A]

  • вариант №1: применен микроконтроллер ATmega8 в корпусе TQFP32;
  • вариант №2: применен микроконтроллер ATmega8 в корпусе PDIP.

Принципиальная схема вольтамперметра (вариант №1)

Список электронных компонентов (вариант №1)

Обозначение в схеме

Номинал

Корпус

Примечание

Потенциометр

Потенциометр

C4, C5, C6, C7, C8, C9

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


вентилятора.

На плату не устанавливается

защитный диод

Опционально. Для защиты транзистора
от помехи по напряжению при включении
вентилятора.

Диод Шоттки: 100 В, 3 А

Регулятор напряжения +5 В

Регулятор напряжения +12 В

Микроконтроллер

коннектор 1×16

коннектор 1×2

коннектор 1×1

коннектор 1×3

N-канальный MOSFET
(ток вентилятора менее 200 мА)

Принципиальная схема вольтамперметра (вариант №2)

Ниже представлена схема подключения модуля в блоке питания.

Рассмотрим подробно процесс настройки вольтамперметра.

Кнопка S1 - сброс/установка параметров.
Для входа в режим установки параметров вольамперметра необходимо, удерживая кнопку нажатой, подать питание на схему. На дисплее появится надпись «www.elfly.pl», что означает вход в режим установки.

Первый параметр для настройки - опорное напряжение для АЦП микроконтроллера. Опорное напряжение является основным фактором погрешности измерений. Пользователь должен измерить опорное напряжение на выводе 20 микроконтроллера (для микроконтроллера в корпусе PDIP - вывод 21). Измеренное значение вы и должны прописать в этом «сервисном меню» при помощи этой же кнопки S1, иначе, по умолчанию, принимается значение опорного напряжения Vref = 2.56 В (соответственно техническому описанию на микроконтроллер).

После изменения значения опорного напряжения для сохранения параметра никаких манипуляций с кнопкой S1не должно проводится в течении 5 с.

Следующий параметр - установка значения сопротивления резистора-шунта .
Если номинал шунта известен, то нажатиями на кнопку S1 необходимо добиться отображения на дисплее соответствующего значения и затем не нажимать кнопку в течении 5 с для сохранения значения.

Если значение сопротивления шунта неизвестно, то необходимо на выход блока питания подключить амперметр, выставить некоторый ток при помощи регулятора ограничения тока блока питания и нажать кнопку S1. Кнопку необходимо нажимать пока показания амперметра и нашего устройства (с правой стороны на дисплее, с левой стороны отображается значение шунта) не станут равными.

После проведения этой процедуры для сохранения параметров кнопку не нажимать в течении 5 с.

Кроме того кнопка S1 используется для сброса значения электрической емкости при зарядке Li-Pol аккумуляторов.

Резистор R9 - точная настройка поддиапазона делителя напряжения.
Чтобы исключить ошибки преобразования АЦП диапазон измерений разбит на два поддиапазона 0 В - 10 В и 10 В - 30 В. Для настройки необходимо на выход блока питания подключить вольтметр и установить выходное напряжение на уровне около 9 В, и регулируя R9 добиться одинаковых показаний вольтметра и нашего устройства.

Резистор R10 - грубая настройка поддиапазона делителя напряжения.
Процедура аналогичная точной настройке, но необходимо установить выходное напряжение блока питания около 19 В, и регулируя резистор R10 добиться совпадения показаний.

Резистор R1 - регулировка контрастности LCD.
Если после сборки устройства на дисплее ничего не отображается, то сперва необходимо отрегулировать контрастность дисплея.

Коннектор J1 - подключение вентилятора.

Коннектор J2 - питание модуля вольтамперметра (+12 В)
Если ваш блок питания имеет выход стабилизированного напряжения +12 В, то его можно подключить к этому коннектору, и в таком случае можно не использовать в схеме регулятор напряжения U2. Такое решение имеет свои плюсы т.к. возможно подключить более мощный вентилятор охлаждения.

Если выхода +12 В у вашего блока питания нет, то этот коннектор необходимо оставить не подключенным.

Примечание. Во втором варианте схемы (PDIP) данный коннектор отсутствует.

Коннектор J3 - питание модуля вольтамперметра (+35 В)
Напряжение питания +35 В подается с диодного моста блока питания. Перед подключением необходимо уточнить параметры используемого регулятора напряжения U2 и уровень напряжения с диодного моста, чтобы не повредить регулятор U2. Но с другой стороны, минимальное напряжение, подаваемое на этот коннектор, не должно быть ниже 9 В или 6.5 В, если используются регуляторы с низким падением напряжения (LDO).

Данный коннектор должен быть подключен независимо от того, подключен ли коннектор J2 к питанию +12 В.

Коннектор J4 - подключение линий измерения напряжения и тока.
Выводы коннектора подключаются:

  • Вывод 1 - подключается к клемме «+» блока питания;
  • Вывод 2 - подключается к клемме «-» блока питания;
  • Вывод 3 - «общий»

Коннектор LCD - подключение индикатора
Вольтамперметр работает корректно с однострочным LCD. Дисплей необходимо использовать со светодиодной подсветкой (ток потребления до 15 мА).

Программирование микроконтроллера

Микроконтроллер может быть запрограммирован с помощью отдельного программатора или же в внутрисхемно с помощью переходника, который подключается к коннектору LCD. Примерный внешний вид переходника изготовленного автором из кабеля IDE:

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

Соответствие сигналов переходника, коннектора LCD, микроконтроллера и программатора

После подключения программатора убедитесь, что программатор «видит» микроконтроллер, и после этого можете приступать к программированию, при этом не забывая выбрать нужное, соответствующее собранной версии, программное обеспечение.

При программировании и установке Fuse-битов необходимо учитывать, что микроконтроллер должен быть настроен на работу от внутреннего RC осциллятора 1 МГц, а также необходимо установить бит BODEN. Рекомендуемый порог срабатывания Brown-Out детектора - 4 В.

Программное обеспечение для микроконтроллера (HEX-файлы)

Описание

Вариант №1
(TQFP)

Вариант №2
(PDIP)

Дисплей 2×16

Дисплей 2×16
+ отображение емкости в мАч

Дисплей 2×16 + отображение емкости в мАч
+ отображение значения сопротивления нагрузки

  • В скриншоте есть фраза про вранье амперметра в разы из-за какой то узкой дорожки с большим сопротивлением. Как человек, собравший целую кучу зарядников и практически везде использовавший эти девайсы могу ответственно заявить, что текст - какой то самопиар автора. Не все модели показывают точно, но в разы - ГОНЕВО!
  • Здесь речь о БП на атмеге.. и Ваши скрины и речи не имеют к данной теме никакого отношения.
  • Вас это тоже касается. С навязыванием своих идей!
  • Я никому ничего не навязываю. И уже задолбался объяснять таким как вы, Ptaxa73, что если вы собрались сделать зарядное устройство, то не обязательно самому делать и винтики и отвёртку, которая их будет закручивать в самодельный же корпус. Я могу сделать импульсный блок питания для зарядки. И делал уже. Обратноходовик или полумост. Для этого надо мотать транс, разводить/травить/сверлить текстолит. Паять, колхозить корпус. Я это всё уже проходил. Только это долго и НАУЯ?!! Корпус купим в магазе, источником будет комповый бп или бп для питания светодиодных лент(оба надо допилить - вот где используется мозг, а не в тупом повторении чужих конструкций) и вуаля. Добавив китайское чудо с дигитал цифрами. Не, если вообще пытаетесь чему то научиться, паять например, как практика подойдёт. И гонора поменьше. Вы тут ещё не понятно, что вы за птаха, так пролётная или задержитесь. А я на форуме 11 лет уже.
  • Молодца! Так держать!
  • в общем заменил шунт на номинал 0.01 ом, всё работает, но вот количество тока не изменяется, если ток превышает 3 ампера(на данный момент заряжаю акб от авто), но вот если подключить слабую нагрузку, например в моём случае 100 мА, то счетчик работает. Кто сталкивался?
  • Сейчас ток снизился до 1.32 А и счетчик начал считать ёмкость. Почему с 1.32 А?
  • Приветствую коллеги! Также собрал показометр вариант №1 в корпусе TQFP32. Платка своя, точнее переделанная из имеющихся здесь, для "симметричного бутерброда" с индикатором 1602 на разъеме. Уже давненько борюсь с ситуацией, когда при увеличении тока падает измеряемое показометром напряжение в сравнении с параллельно подключеным эталонным вольтметром. Разница четко соответствует падению напряжения на шунте. Схема подключения стандартная Если чикнуть крестик и посадить "токовый" вход на общий, как показано красным, показания вольтметра становятся аналогичны эталонному и их точность на удивление достаточно неплоха. Ток измеряется нормально. Вход с выпрямителя БП не задействован, висение в воздухе и цепляние на общий не приводит к каким либо изменениям. Вчера уже ночью даже контроллер другой перепаял, прошил, скормил свежий Vref, откалибровал и.... отъимел аналогичный результат. Плата достаточно качественная, промыта многократно. На двух входах АЦП которые относятся к измерению напряжения (24, 25 лапы) напряжения неизменны как для "черного" так и для "красного" случая схемы подключения, а показания разные. Как оНо там чего-то калькулирует ума не приложу. Прошивки менял (UI/UIR). Шой-то я уже в отчаянии заблудившись в этих несчастной горстке деталек. И как оНо у кого-то из вас правильно работает ХЗ?
  • http://www....4&postcount=37 Моё мнение по ваще этой затее изначально. 2011 год.
  • Спаисбо за реплику, но меня не эмоциональные а технические аспекты интересуют. Гараж отапливаемый:) Цена 1602 $1,2 + mega8 $1 - c китайским гуном 3-х сегментным в те же деньги, даже при возникшей у меня ситуации, по точности и сравнивать неприлично. Вопрос мой в том, как оНо у кого-то в варианте TQFP32 корпуса с соответствующими прошивками умудрилось корректно работать? Может не то и не тем мерили? Малоомные шунты(0.01-0.03) малые токи до 3А могли не дать ощутить эту бяку. Вычитает падение на шунте, хоть тресни...
  • Привет народ! Видимо напрасно я тут бучу поднял, хотя никто толком в нее и не сунулся. Прошивка заточена для блоков питания куда дополнительно(при его отсутствии) добавляется шунт и показания напряжения соответствуют тому, что должно быть уже на их выходных клеммах, кда цепляют нагрузку. По этому в прошивке производится вычисление падения на шунте и "косвенный" вывод его на индикацию. Я собирался использовать этот показометр в чуть других целях(как измеритель в конструкции электронной нагрузки), где этого вычисления не должно быть, и я не мог сразу догадаться, что автор беря измерительный сигнал относительно одной конкретной точки схемы будет выводить его для другой расчетной точки. По сему вопрос снят, а сам показометр, могу сказать работает более чем хорошо, и это ИМХО, единственная уникальная на просторах инета схемка на меге8, которая во всем диапазоне 0-35В способна выводить напряжение с точностью до 0,0Х. Своими результатами присоединяюсь к тем, кто подтвердил ее отличную работоспособность для варианта схемы №1 в корпусе TQFP32. Всем успехов!
  • Похоже что тема умерла. Видимо придётся написать свою программу, а для этого научиться её писать. Напишу когда, выложу.
  • Вам уже ранее советовали другие шунты использовать. Могу сказать, что я пробовал с 0,1/0,05/0,01. С 0,01 брешет конкретно. С такими малыми падениями на шунте, схема без доп усилителя не работоспособна. С 0,1/0,05 - нормально. Счетчиком я не пользуюсь и не пробовал даже.
  • При мало токе через шунт, падение тоже малое, но именно при малом падении счетчик считает и весьма корректно.
  • И все же. У кого-то работает точно индикатор с показаниями тока. И до какого предела точно показывает ток?
  • до 15 ампер гонял, показания точные, даже очень
  • Работает точно до 2 цифры после запятой. 0-28 Вольт 0-3,5 А. Шунт 0,22 Ом Блок питания с стабилизацией напряжения и тока. При нагрузке напряжение не падает.
  • Я прошил атмегу. индикатор почемуто чист.При регулировке контрастности появляются квадратики верхней строке дисплея.подскажите в чем ошибка.
  • Ищите ошибку! Тема измусолена. Или больше информации.
  • Нашел ошибку в мнонтаже.Все заработало.