Как сделать датчик постоянного тока
Сообщества › Arduino для автомобиля › Блог › Датчик тока из Г и П …
При изготовлении одного девайса столкнулся с необходимостью измерять ток и напряжение. С напряжением все просто, используем обычный резистивный делитель. Для измерения тока тоже есть много вариантов.
Можно измерять падение напряжение на шунте arduino.ua/prod1661-cifro…ya-na-ina219-s-shinoi-i2c
Можно использовать датчик с эффектом Холла arduino.ua/prod618-Datchik_toka_ACS712ELCTR-30A
Проблема в том, что ни того ни другого в ящиках не оказалось, а заказывать это долгая песня. Но память подсказала, что когда-то видел на каком-то форуме картинку с датчиком Холла в прорези ферритового кольца. И мозговые импульсы дали команду мышцам рук…
Вот получилась такая конструкция :
Если интересно, позже расскажут про нюансы программы, заморочки определения опорного напряжения ( в стиле «секретный вольтметр» ) …
Комментарии 33
А реакция у него на внешнюю среду такач же как у ACS712, тоже регирует на фазы луны? Из за этого пришлось отказаться от её использования, пришёл к аыводу что в автомобиле ACS не применима априори
Работа датчика с фазами луны не коррелируется.
А если милиамперы мерить, осилит?
Можете поэкспериментировать с материалом кольца и количеством витком, возможно и получится…
Приветствую, я имею датчики csa-1v так же на основе холла, но не нужно разрывать цепь ( что для моих целей важно), ну вот не хватает знаний как подключить к МК его.
Не встечался с такими датчиками
Интересно, жду подробностей!
Для самообразования — а как датчиком Холла можно измерять ток?
Эл.магнитное поле в кольце действует на датчик.
А, так наверное готовые датчики тока так и действуют? На эффекте Холла?
Да. В тексте есть ссылка на такой датчик.
Все, разобрался. Те датчики, по ссылкам — первый на шунте, второй — Холла без кольца, а вы сделали самодельный кольцевого типа на Холле. Судя по фото — он уже 50 мА чувствует.
Как и все датчики на Ххолла фонят. Субъективно самодельный меньше фонит.
Для стабильности — катушку и датчик чем то залить надо? Хотя бы парафином? Не ровен час — чуть стронули Холл, и калибровка уйдет же.
В моем случае все запаяно жестко.
Если делать отдельно, то датчик нужно вклеить.
А какой ток, переменный мерит. А мощность с амперчасами будет считать?
Может и переменный измерять.
Если написать соответствующую программу, то и мощность и емкость будет считать.
Дисплей взял тот, что был под рукой.
Про перспективы — планирую новую версию ЗУ с таким дисплеем.
Вот и отлично… у меня есть зарядник «Кулон-715», что мне в нем нравится, так это то, что показывает время заряда и отданную емкость а батарею… но на ардуино, я конечно не встречал таких тестеров АКБ…
но пожалейте, тех, у кого поячится желание повторить такой «девайс… сделайте на 1602… чтоб был доступен по стоимости железок…
Давай давай! Ждем подробностей.
давай подробный отчет, интересно, недавно была потребность сделать на усилитель что то на подобии электронного предохранителя без шунтов и т.п.
Как я понимаю, ток измеряемый ограничен сечением провода.
а как мерять 300 Ампер?
Есть разные варианты…
Но в любом случае подход должен быть более серьезный к соединениям …
пока смотрю на клеммы иномарок со встроенным датчиком тока
www.lem.com/docs/products/has_50_600-s_e.pdf
работает хорошо, единственное что надо повышающий DC-DC ставить на питание.
Выход прямо на ногу ардуины — рабочее напряжение 4В.
Как я понимаю, ток измеряемый ограничен сечением провода.
а как мерять 300 Ампер?
Можно ещё использовать популярную в последнее время HLW8012,
и напряжение и ток в одном флаконе за «3 копейки»
но она, увы, подразумевает гальваническую связь с измеряемой линией,
хотя и это можно решить.
Тоже недавно была задача собрать датчик наличия нагрузки в цепи,
без измерения самого тока.
Так же мотал трансформатор тока, выход тупо на ацп МК.
Есть пульсации — есть ток — есть нагрузка.
При желании, само собой, можно измерить уровень пульсаций.
Нет пульсаций — нет нагрузки.
У меня задача была несколько другая.
Датчик работоспособности нагрузки.
Если коротко — просто насос.
Т.к если питание есть, а тока потребления нет,
значит насос не работает и произойдёт аварийная ситуация.
Ну и теоретически вклинивший насос
тоже можно было отследить.
А по поводу ACS712, мне не очень они понравились.
Уже точно не помню почему,
вроде значениями,
+- трамвайная остановка на переменном токе.
При той же самой нагрузке и коде, на трансформаторе тока
значения были более стабильными.
Сейчас китайцы во всю используют HLW8012,
где не нужна большая точность измерений.
Хочу заказать и попробовать их.
Но они требуют шунт…
Я заказывал с чайны на микрухе благо не спешно было и мог ждать 🙂
Кроме времени ожидания еще и в разы дешевле получилось … 🙂
Бесконтактный TrueRMS измеритель тока
При проверке силовых электрических цепей часто возникает необходимость в измерении силы тока. Чтобы измерить величину постоянного тока, как правило, применяют резисторный шунт, включенный последовательно с нагрузкой, напряжение на котором пропорционально току. Однако, если возникнет необходимость в измерении больших токов, то потребуется шунт внушительной мощности, поэтому целесообразнее использовать другие методы измерения.
В связи с этим у меня возникла идея собрать измеритель тока на основе датчика Холла. Его схема представлена на рисунке.
Особенности амперметра:
Схема работает следующим образом. Провод с током располагается внутри ферритового кольца, создавая при этом магнитное поле, величина которого прямо пропорциональна силе тока. Датчик Холла, расположенный в воздушном зазоре сердечника, преобразует величину индукции поля в напряжение, и это напряжение подается на операционные усилители. ОУ необходимы, чтобы привести уровни напряжения с датчика к диапазону входных напряжений АЦП. Полученные данные обрабатываются микроконтроллером и выводятся на LCD дисплей.
Предварительный расчет схемы
С помощью надфиля в кольце протачивается зазор такой толщины, чтобы там поместился датчик, то есть около 2 мм. На данном этапе уже можно примерно оценить чувствительность датчика к току и максимально возможный измеряемый ток.
Эквивалентная проницаемость сердечника с зазором приблизительно равна отношению длины магнитной линии к величине зазора:
Тогда, подставив это значение в формулу расчета индукции в сердечнике и умножив это все на чувствительность датчика, найдем зависимость выходного напряжения датчика от силы тока:
Например, в моем случае lз = 2 мм = 0,002 м, KB = 5 мВ/Гаусс = 50 В/Тл, откуда получаем:
Реальная чувствительность к току оказалась равной 0,03В/А, то есть расчет получается весьма точным.
Согласно даташиту на SS494B, максимальная измеряемая датчиком индукция равна 420 Гауссов, следовательно максимальный измеряемый ток равен:
Фото датчика в зазоре:
Расчет цепей ОУ
В амперметре имеется два канала: до 10 А (23 вывод МК), и до 50 А (24 вывод МК). Переключением режимов занимается мультиплексор АЦП.
Напряжения нам известны:
Задав R4 равным 20 кОм, получаем систему из двух уравнений, где переменными являются R2 и R3. Решение системы можно легко найти с помощью математических пакетов, например MathCAD (файл расчетов приложен к статье).
Аналогичным образом рассчитывается и вторая цепь, состоящая из IC3:A и IC3:B. В ней сигнал с датчика сначала проходит через повторитель IC3:A, а затем попадает на делитель на резисторах R5, R6, P5. После ослабления сигнала, он дополнительно смещается операционным усилителем IC3:B.
Описание работы микроконтроллера
Микроконтроллер ATmega8A выполняет обработку сигналов с ОУ и вывод результатов на дисплей. Он тактируется от внутреннего генератора на 8 МГц. Фьюзы стандартные, за исключением CKSEL. В PonyProg они выставляются так:
АЦП сконфигурирован на работу с частотой 125 кГц (коэффициент деления равен 64). По окончании преобразования АЦП вызывается обработчик прерывания. В нем запоминается максимальное значение тока, а также суммируются квадраты токов последовательных выборок. Как только число выборок доходит до 5000, микроконтроллер вычисляет RMS значение тока и выводит данные на дисплей. Затем переменные обнуляются и все происходит с начала. На схеме указан дисплей WH0802A, но можно использовать любой другой дисплей с контроллером HD44780.
Прошивка микроконтроллера, проект для CodeVision AVR и файл симуляции в Proteus приложены к статье.
Настройка схемы
Настройка устройства сводится к регулировке подстроечных резисторов. Сначала нужно настроить контрастность дисплея, вращая P1.
Затем, переключившись кнопкой S1 в режим до 10А, настраиваем P2 и P3. Выкручиваем один из резисторов максимально вправо и, вращая второй резистор, добиваемся нулевых показаний прибора. Пробуем измерить ток, величина которого точно известна, при этом показания амперметра должны получиться ниже, чем есть на самом деле. Подкручиваем оба резистора немного влево, так чтобы сохранилась нулевая точка, и опять измеряем ток. На этот раз показания должны стать чуть больше. Продолжаем это до тех пор, пока не добьемся точного отображения величины тока.
Теперь переключимся в режим до 50А и настроим его. Резистором P4 выставляем ноль на дисплее. Измеряем какой-либо ток и смотрим на показания. Если амперметр завышает их, то крутим P5 влево если занижает, то крутим вправо. Опять выставляем ноль, проверяем показания при заданном токе и так далее.
Фото устройства
Измерение постоянного тока:
Из-за недостаточно точной калибровки, значения немного завышаются.
Измерение переменного тока частотой 50 Гц, в качестве нагрузки используется утюг:
В теории среднеквадратичный ток синусоиды равняется 0.707 от максимального, но, судя по показаниям, этот коэффициент равен 0.742. После проверки формы напряжения в сети, выяснилось что оно лишь напоминает синусоиду. Учитывая это, такие показания прибора выглядят вполне достоверными.
У прибора все же есть недостаток. На выходе датчика постоянно присутствуют шумы. Проходя через ОУ, они попадают на микроконтроллер, в результате чего невозможно добиться идеального нуля (вместо нуля отображается примерно 30-40 мА RMS). Это можно исправить, увеличив емкость C7, но тогда ухудшатся частотные характеристики: на высоких частотах показания будут занижаться.
Датчик тока для Arduino
Из этой статьи мы узнаем, как сделать датчик тока совместимый с Arduino и большинством других широко популярных микроконтроллеров. Этот проект отличается компактной конструкцией и схемой, основанной на SMD-компонентах.
Этот датчик тока можно легко использовать для измерения до 15А и даже при пиковом токе около 20А.
Шаг первый: шунтирующий резистор
Основным компонентом в этой схеме является шунтирующий резистор. Именно с помощью этого резистора измеряется небольшое падение напряжения и затем усиливается до измеримых значений Arduino. Важно, чтобы номинал этого резистора был достаточно мал, чтобы не создавать значительного падения напряжения в цепи. Малое сопротивление в диапазоне миллиомов также гарантирует, что общая рассеиваемая мощность очень мала и, следовательно, сам резистор не нагревается. Падение напряжения довольно мало, чтобы микроконтроллер мог напрямую его измерить, поэтому и используется операционный усилитель.
Шаг третий: изготовление печатной платы
После завершения проектирования схемы и макета мастер распечатал его в таком масштабе, чтобы размер печати соответствовал фактическому размеру печатной платы. Печатать нужно в зеркальном изображении. По размерам схемы вырезал заготовку для платы.
Шаг шестой: кодирование и калибровка
Теперь нужно закодировать микроконтроллер и откалибровать значение датчика для получения точных показаний.
Мастер использовал Arduino Nano и среду Arduino IDE.
Код можно разбить на следующие шаги:
Инициализация библиотеки для OLED-дисплея (для этого он использовал библиотеку Adafruit)
Настройка аналогового вывода 0 как вход
Считывание аналоговое значение с выхода OP-Amp на аналоговом выводе 0
Умножение аналогового значения на коэффициент калибровки, чтобы получить правильное значение тока в амперах (или миллиамперах).
Отображение значения на OLED-дисплее
OP-Amp действует как неинвертирующий усилитель в данной схеме и вырабатывает напряжение, пропорциональное падению напряжения на шунте. Затем это напряжение измеряется с помощью АЦП Arduino, который выдает число от 0 до 1023 (10-битное разрешение АЦП в Arduino). Это число не равно фактическому текущему значению, поэтому нужно выполнить математические манипуляции в программном обеспечении, чтобы получить точное значение. В данном случае на помощь приходит мультиметр. Большинство мультиметров могут точно измерять ток до 10 А, поэтому его можно использовать в качестве эталона для определения калибровочного коэффициента.
Смысл заключается в том, чтобы использовать небольшую нагрузку вместе с источником питания с мильтиметром и токовым шунтом последовательно с нагрузкой.
Таким образом, здесь мультиметр может измерять фактический ток, потребляемый нагрузкой, и от нашего текущего модуля шунтирования мы можем получить соответствующее аналоговое значение через Arduino.