Миллиамперметр на микроконтроллере своими руками

Добавил пользователь Валентин П.
Обновлено: 30.08.2024

Радіоаматорство, радіоелектроніка, мікроконтролери, схеми

Не буду скрывать, появлением на свет данного устройства, в основном, стали ваши довольно теплые отзывы о двухдиапазонном вольтметре здесь и на радиокоте. Как минимум несколько человек напрямую интересовались “не хочу ли я?” из зарядного устройства выкинуть лишний светодиод и еще чего-нибудь “ненужное” а вместо этого на освободившиеся ноги повесить второй индикатор и светить одновременно и амперы и вольты. Я долго упирался, но поразмыслив и взвесив все “за” и “против” было решено взяться за разработку нового устройства. При разработке были приняты во внимание следующие тезисы.
1. Переделывать что-то старое всегда не так интересно, как создавать что-то новое. Да и довольно громоздкие и специфические функции зарядного устройства вряд ли нужны для повседневного пользования.
2. Моя идея и реализация двух диапазонов в вольтметре конечно большинству из вас понравилась, но входная часть на ОУ была бы хороша в универсальном вольтметре. В лабораторном блоке питания в который в 95% случаев вы будете встраивать это устройство высокое входное сопротивление и даром не надо. Поэтому на входе только делители + защитные стабилитроны. Настраивать стало еще легче.
3. Измерение тока при помощи прецизионного ОУ и двухполярного источника питания – это конечно очень хорошо, но довольно громоздко схемотехнически. Тут мы будем мерять ток при помощи однополярного ОУ с rail-2-rail входом. Хотя конечно придется побороться с возникшими по этому поводу граблями. Но об этом позже.
4. Раз уж устройство будет претендовать на звание “народного”, то и микроконтроллер в нем должен быть “народный” – ATMega8 в DIP корпусе.
5. На сдачу, точнее на три оставшиеся бесхозные ноги добавлена схема для работы с триггерной защиты по току. О ней тоже позже.
6. Ну и наконец – “фишка”. В любой “народной” вещи должна быть “фишка”! В данном случае это будет автоопределение типов впаянных индикаторов. Ставить можно с общим катодом, можно с общим анодом, можно один такой, второй другой – все будет работать с одной прошивкой. Также все будет работать и с трехсимвольными индикаторами с общим анодом (без автоопределения), исчезнет только буква A или U для амперов и вольт соответственно.


Работа устройства. Сразу отмечу, что, если не поставить все детали связанные с 24 и 25 ногой контроллера, а кнопку сделать скрытой или сделать контакты для замыкания отверткой (без нее нельзя, она будет нужна один раз для калибровки) – то получится просто вольт-амперметр не обремененный никакими функциями. Но если собирать все в полном объеме то работа будет требовать пояснений. Работу токовой защиты можно разбить на четыре режима.
1. Порог срабатывания защиты не выставлен.
2. Установка порога защиты.
3. Порог защиты выставлен и запомнен, защита не срабатывала.
4. Защита сработала.
Во всех четырех режимах на верхний индикатор выводятся значение вольт в формате 0.00в – 9.99в в диапазоне 0-10в, и 10.0 – 99.9в, в режимах 1,3,4 на нижнем индикаторе выводится измеряемый ток. Вы спросите зачем это нужно в четвертом режиме? Все просто с индикатора “защита” снимается управляющее напряжение для отключения выхода блока питания. Механизм может быть любой. Единственное что вы должны знать – 0в на 24-ножке – защита не сработала, 5в – сработала. Еще имеет смысл помнить, что защита не очень высокоскоростная – в 99% случаев скорости ее срабатывания конечно же хватит, но есть и другие варианты… Что-то я отвлекся… О четвертом режиме: защита как таковая может и не использоваться, а просто можно пользоваться индикатором как триггером для того чтобы знать что было превышение потребления тока устройством которое запитано от БП. Именно потому в 4-м режиме продолжается измерение и тока и напряжения. Логика работы кнопки такова: из первого режима коротким нажатием запустится второй, далее выбираем переменным резистором значение тока срабатывания защиты от 0.00 до 9.99A, индикатор ампер при этом моргает. Еще одно короткое нажатие переведет нас в третий режим. При этом будет моргать точка возле буквы “А” сигнализируя о том, что в памяти есть значение порога срабатывания. Короткое нажатие на кнопку из режима 3 переведет нас снова в режим 2. Если сработала защита мы попадаем в режим 4. Сброс защиты, т.е. переход в режим 3 производится коротким нажатием на кнопку. Длинное удержание кнопки (более 1.5с) в режимах три и четыре переведет нас в режим 1, т.е. сотрет данные порога срабатывания. И только из режима 2 длинное нажатие запустит процесс автокалибровки, но о нем по-прежнему позже. Также стоить сказать о том, что при пропадании питания устройство “забывает” о запомненном значении порога срабатывания защиты.

О конструкции и настройке. Конструктивно все расположено на одной плате. Разъемы для подключения расположены в один ряд и имеют достаточно крупные контакты. Устройство требует отдельное питание в пределах 7…15в. Толщина и длина проводов критична для подключения земляного провода и провода “- Rn” – эти два провода должны быть максимально толстыми и короткими. Провод “-Rn” подключается непосредственно к минусовой выходной клемме. Сопротивление шунта как таковое измерить удастся не всем – китайский мультиметр такое померять не в состоянии, поэтому настройка канала амперметра сводится к настройке коэффициента усиления ОУ IC4. Сопротивление шунта для номиналов на схеме должно составить 3.62 м(илли)ом. Реально – будете подбирать резистор R25. В качестве шунта я использовал половинку витка от спирали нагревателя какого-то камина толщиной около 1мм и диаметром 5мм. На плате мест под такие “перемычки” предусмотрено два. Теперь собственно о “граблях”… Так как решено было отказаться от двухполярного питания в пользу относительно недорогого rail-2-rail ОУ – возникла проблема с нулем на выходе. Коэффициент усиления довольно велик, а усиливаются в том числе собственные шумы, а такие ОУ к малошумящим и прецизионным отнести сложно – на выходе образовался некоторый потенциал, аппаратными методами скомпенсировать который довольно проблематично. У меня получилось 0.15A (mcp6022, Кус=100) при абсолютном нуле на входе ? Ну а теперь давайте вспомним как устроен АЦП. 0.15А, точнее цифра 0.15 по отношению к 9.99 – это 15 отсчетов АЦП. АЦП у нас 10-битный, т.е. 2 в 10-й степени = 1024 отсчета. Так получается что такой цифрой как 15 мы вполне можем пожертвовать абсолютно безболезненно для диапазона измерения, а если даже предположить что цифра будет больше 24 “свободных” отсчетов, то это будет означать что “отгрызется” немножко из измеряемого диапазона сверху, т.е. верхний предел будет не 9.99A, а скажем 9,87. Все не так и плохо. В общем именно это мы и делаем при калибровке. Запоминаем значение АЦП при фактическом токе 0A – никакая нагрузка не подключена, а потом это значение, в дальнейшем вычитаем из измеренного значения, заменяя при этом случайно образовавшийся переход через 0 (это может быть в пределах погрешности измерения) обычным 0.00. Я уже полез в дебри алгоритма работы программы…

Опишу лучше практический алгоритм настройки канала измерения тока. Запускаем предварительную калибровку (длинное нажатие кнопки из режима установки порога срабатывания). Признаком успешной калибровки – отображение 0.00А при отключенной нагрузке. Проводим это до начала каких либо подборов резисторов, затем подбираем R25 до приемлемого, но не окончательного значения показаний тока, затем повторно калибруемся и окончательно выставляем номинал R25. Больше нам калибровка никогда не понадобится, единственное пожелание – эту процедуру выполнять уже по месту установки в конечное изделие. С вольтметром все гораздо проще – подбираем соотношение резисторов в делителе R24 R23 для диапазоны 10…100в и R22 R21 для диапазона 0…10в. Номиналы указаны для идеального стечения обстоятельств, когда образцовое напряжение на AREF будет равно 2.56в. На практике все равно придется подбирать…. Длина и толщина провода “+Rn” не особо критична, но его стоит подключать непосредственно на выходную клемму БП. Еще стоит проконтролировать напряжение на AREF и верхнем по схеме выводе резистора R13 – в обоих точках должно быть около 2.5в. Вот в целом и вся настройка. Единственное на чем бы еще остановился – так это на кажущихся ненужными резисторах R29 R30 – они нужны для правильной работы автоопределения типов индикаторов. Также резистор R13 можно заменить на любой другой (в разумных пределах) номинал, не забывая что R15 = R13.


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


Модификации исходной прошивки:
1. Прошивка, в которой реализовано запоминание порога срабатывания тока защиты после выключения питания, а также автоматическая инициализация EEPROM при начальной прошивке МК.
2. Прошивка в которой отключена разделительная запятая в канале тока. При соответствующем пересчете шунта / усилителя ток будет отображаться как 0…999.
3. Прошивка в которой запятая в канале измерения напряжения смещена на один символ вправо. Т.е. диапазоны выглядят как: 00.0…99.9 и 100…999. Пересчет входных делителей обязателен.
4. Прошивка в которой запятая в канале тока находится на индикаторе 2 . При соответствующем пересчете шунта / усилителя ток будет отображаться как 00.0…99.9.

Цей запис оприлюднено в Вимірювальні пристрої та позначено AVR, Mega8 автором electra. Додати до закладок постійне посилання.

Вольтметр, амперметр и измеритель ёмкости аккумуляторов на микроконтроллере

Схема, фотографии, печатные платы и прошивки измерителя напряжения, тока и состояния АКБ, выполненном на контроллере ATMega8.

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

схема варианта вольтамперметра для TQFP32


Для микроконтроллера ATmega8 в корпусе TQFP32

схема варианта вольтамперметра для PDIP


Для микроконтроллера ATmega8 в корпусе PDIP

Несколько вариантов печатных плат можно скачать тут .

Электросхема измерителя А/В

Характеристики измерителя А/В

    измеряемое напряжение: 0 В – 30 В, шаг 10 мВ;

Схема подключения универсального измерителя A V E

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

Вольтметр, амперметр и измеритель ёмкости аккумуляторов - плата печатная

Вольтметр, амперметр и измеритель ёмкости аккумуляторов - подключение

Вольтметр, амперметр и измеритель ёмкости аккумуляторов на микроконтроллере - дисплей ЖК

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

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


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

Фуз-биты контроллера А/В метра

Фуз-биты контроллера А/В метра 2


Фуз-биты

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

Настройка цифрового вольтамперметра

Настройка цифрового вольтамперметра на МК

Настройка цифрового вольтамперметра - измерение напряжения

Установка значения сопротивления резистора-шунта. Если номинал шунта известен, то нажатиями на кнопку S1 необходимо добиться отображения на дисплее соответствующего значения и затем не нажимать кнопку в течении 5 с для сохранения значения. Если значение сопротивления шунта неизвестно, то необходимо на выход блока питания подключить амперметр, выставить некоторый ток при помощи регулятора ограничения тока БП и нажать кнопку S1. Кнопку необходимо нажимать, пока показания амперметра и нашего устройства (с правой стороны на дисплее, с левой стороны отображается значение шунта) не станут равными. Для сохранения параметров кнопку не нажимать в течении 5 секунд. Также S1 используется для сброса значения электрической емкости при зарядке Li аккумуляторов.

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

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

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

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

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

Радиолюбители в своей лаборатории используют, как правило, изме­рители тока заводского изготовления. Однако не все эти приборы обеспечивают безобрывную коммутацию силовой цепи при переключе­нии пределов измерения, а также не все они защищены от токовых перегрузок. В то же время часто обрывы измеряемой цепи недопус­тимы, а при перегрузках измерительный прибор может выйти из строя. Указанные недостатки наиболее ощутимы при исследованиях, регулировочных, ремонтных и других работах, когда часто возникает необходимость в переключениях пределов измерений, а также вслед­ствие ошибок, неосторожности или неисправности исследуемого уст­ройства, приводящих к броскам тока.

Рис. 1. Схема миллиамперметра

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

На рис. 1 приведена схема миллиамперметра с преде­лами измерения 100 мкА, 1, 10, 100 мА, 1 А, отвечаю­щего поставленным задачам. На первом пределе изме­рения (100 мкА) измеритель РА1 включается в силовую цепь непосредственно, а на остальных пределах парал­лельно ему подключаются шунты R2 — R5 при помощи .переключателя SA1 любого типа. Падение напряжения на приборе при полном отклонении стрелки невелико, и диоды VD1, VD2 не влияют на показания. При разры­ве силовой цепи во время переключения пределов изме­рения ток течет через диод, чем обеспечивается безоб-рывность коммутации. Кроме того, диоды осуществляют защиту прибора от токовых перегрузок. При возрастании тока падение напряжения на приборе превышает порог отпирания диода и он пропускает избыточный ток. Встречно-параллельное включение двух диодов обеспе­чивает защиту при любой полярности включения прибора в измеряемую цепь. Степень перегрузки измерителя, как отношение максимального падения напряжения на диоде к номинальному падению напряжения на измерителе в данном устройстве не превышает десяти. Такую перегрузку стрелочные приборы магнитоэлектрической систе­мы способны выдерживать многократно.

Предохранитель FU1 защищает прибор при аварии.

На схеме приведены сопротивления шунтов, рассчитан­ные на использование со стрелочным измерителем с током полного отклонения 100 мкА и сопротивлением рамки 1000 Ом. В связи с тем что сопротивления рамки микроамперметров имеют большой разброс, последова­тельно с измерителем включен переменный резистор R1. Суммарное сопротивление рамки и этого резистора со­ставляет 1100 Ом и точно подгоняется при калибровке, которая производится при изготовлении прибора или после замены микроамперметра.

Рис. 2. Схема миллиамперметра (II вариант)

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

где r.j. — сопротивление шунта. Ом; 1П — ток полного отклонения микроамперметра, A; R,, — сопротивление рамки микроамперметра, Ом; I — предел измерения тока данного поддиапазона, А.

Сопротивление резистора R1 берется около 20% от со­противления рамки микроамперметра.

Шунты выполняются из манганинового обмоточного провода в шелковой изоляции марки ПЭШОММ: R2 диа­метром провода 0,08 мм (примерная длина 1,6 м), R3 — диаметром 0,12 мм (длина 300 мм), R4 — диаметром 0,3 мм (длина 200 мм), R5 — диаметром 1 мм (длина 200 мм). Точные сопротивления шунтов подгоняются с помощью моста, так как от их точности зависит точность прибора. Во избежание появления ошибки измерений на максимальном пределе измерения проводники, соеди­няющие входные клеммы прибора с переключателем и шунтом R5, должны быть достаточно толстыми.

Калибровка прибора при подогнанных шунтах произ­водится на каком-либо одном пределе измерения за исклю­чением предела 100 мкА. Для этого включают прибор последовательно с образцовым прибором, источником тока и ограничительным резистором последовательно и пере­менным резистором R1 устанавливают стрелку прибора на то же деление шкалы, которое показывает образцовый прибор. При этом желательно задать такую силу тока, чтобы стрелки приборов находились в правой части шкал. На других пределах измерения калибровка не требуется: она обеспечивается автоматически. Переменный резистор необходимо законтрить во избежание расстройки от виб­раций и толчков при сотрясениях.

Если изготовить шунты с точностью около 1…2% нет возможности, прибор можно собрать по схеме, показан­ной на рис. 2. Здесь подстроечные переменные резисто­ры введены на всех пределах измерения, за исключе­нием минимального. Их сопротивления по-прежнему выби­раются равными приблизительно 20% от сопротивления рамки микроамперметра. Калибровка должна произво­диться теперь на всех пределах измерения кроме предела 100 мкА соответствующим переменным резистором.

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



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

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

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

ампервольтметр на микроконтроллере и ЖК дисплее

изготовление ампервольтметра на микроконтроллере и ЖК дисплее от телефона

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

Работа цифрового ампервольтметр на микроконтроллере и ЖК

ЦИФРОВОЙ АМПЕРВОЛЬТМЕТР меряет ток

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

ЦИФРОВОЙ АМПЕРВОЛЬТМЕТР на LCD

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

ЦИФРОВОЙ АМПЕРВОЛЬТМЕТР в работе

Всем спасибо за внимание. Все вопросы задаем на форуме. Показометр сделал Бухарь.

Форум по обсуждению материала ЦИФРОВОЙ АМПЕРВОЛЬТМЕТР


В каком направлении течет ток - от плюса к минусу или наоборот? Занимательная теория сути электричества.


Про использование технологии беспроводного питания различных устройств.


Переделываем игрушку обычный трактор в радиоуправляемый - фотографии процесса и получившийся результат.


Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.

На ADS1110 можно собрать достаточно простой и точный миллиомметр. Миллиомметр предназначен для точного измерения сопротивления до 10 Ом, с разрешением 0,001 Ом. Выше 10 Ом точность показаний немного падает. Предел измерения миллиомметра о 0 до 150 Ом.

ADS1110 (более подробно) это прецизионный аналого-цифровой (A/D) преобразователь с дифференциальным входом и разрешением до 16 бит. Встроенный ИОН 2,048 В обеспечивает входной диапазон ±2,048 В. ADS1110 использует I2C интерфейс для связи с микроконтроллером. ADS1110 выполняет измерения со скоростью 15, 30, 60 или 240 выборок в секунду, содержит встроенный усилитель напряжения с коэффициентом 1, 2, 4, 8.

Измерительные провода имеют одинаковую длину, которые подключаются к разъему X1, проводники соединяющие разъем Х1 и АЦП должны иметь минимально возможную длину. Вторые концы измерительных проводов соединяются непосредственно на контактах измеряемого сопротивления.

Для калибровки миллиомметра необходимо точно измерить напряжение 3,3 В (подается с платы Arduino) и указать его в строке:

Точность измерения сопротивления напрямую зависит от точности эталонного сопротивления 100 Ом и точности измерения напряжения 3,3 В.

Читайте также: