Схема цифрового амперметра 0-10А на микроконтроллере ATtiny13

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

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

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

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

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

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

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

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

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

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

Параметр Значение
Измеряемый ток 0-9,9 А
Цена деления 100 мА
Погрешность 50 мА
Начало индикации 200 мА
Напряжение питания 10-16 В

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 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 В, увы, не увенчались успехом...

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

В авторском варианте индикаторное "табло" и вовсе было собранно на отрезке макетной платы-"решета", из двух "древних" одноразрядных АЛС321...

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

И если все делать "по уму", то неплохо было бы выделить - для динамического управления этой самой запятой - еще одну ножку МК (т.к. в К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 - Скачать.

Плата амперметра на Attiny13 в сборе

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

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

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

Матин А. РК-11-17.

2 953 На микроконтроллерах
амперметр микроконтроллер avr микроконтроллер
Написать комментарий:

cashback