Миллиамперметр на микроконтроллере своими руками
Радіоаматорство, радіоелектроніка, мікроконтролери, схеми
Не буду скрывать, появлением на свет данного устройства, в основном, стали ваши довольно теплые отзывы о двухдиапазонном вольтметре здесь и на радиокоте. Как минимум несколько человек напрямую интересовались “не хочу ли я?” из зарядного устройства выкинуть лишний светодиод и еще чего-нибудь “ненужное” а вместо этого на освободившиеся ноги повесить второй индикатор и светить одновременно и амперы и вольты. Я долго упирался, но поразмыслив и взвесив все “за” и “против” было решено взяться за разработку нового устройства. При разработке были приняты во внимание следующие тезисы.
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.
Для недавно собранного лабораторного блока питания, который показал очень достойную работу, решил сделать не менее достойный и качественный цифровой вольтамперметр на микроконтроллере, по совместительству оснащённый омметром нагрузки и ёмкостеметром заряжаемых аккумуляторов. Имеется два варианта схемы вольтамперметра:
Для микроконтроллера ATmega8 в корпусе TQFP32
Для микроконтроллера ATmega8 в корпусе PDIP
Несколько вариантов печатных плат можно скачать тут .
Характеристики измерителя А/В
-
измеряемое напряжение: 0 В – 30 В, шаг 10 мВ;
Измерение тока проводится с использованием шунта, который подключен последовательно с нагрузкой в цепи отрицательной (общей) клеммы блока питания. Устройство запитывается от основного БП. Дополнительной функцией, которую выполняет микроконтроллер, является управление вентилятором охлаждения радиатора выходного транзистора блока питания.
При использовании двухстрочного дисплея имеется возможность отображения значения сопротивления подключенной нагрузки. А при использовании блока питания для зарядки литий-ионных аккумуляторов имеется функция отображения емкости АКБ, что дает возможность оценить их уровень разряда.
Внутреннее разрешение вольтамперметра по диапазону измерения тока рассчитывается согласно выражения:
Падение напряжения на шунте не должно превышать 2.4 В, поэтому значение сопротивления шунта должно быть меньше 2.4/Imax[A].
Фуз-биты
При программировании и установке 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. Для разных прошивок нужно подобрать шунт. Не у всех есть возможность измерять сотые доли ома и прецизионные резисторы. Поэтому в схеме есть два подстроечных резистора. Ними можно подкорректировать показания измерений.
Там-же в архиве есть и печатная плата. Есть небольшие различия на фото - там она немножко подправленная. Удалена одна перемычка и размер меньше по высоте на 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 В.
Читайте также: