Как проверить датчик тока ACS712
- Войдите на сайт для отправки комментариев
Пт, 17/01/2014 - 13:35
Не так давно купил вот такой датчик тока ACS712 на 20 ампер, все руки не доходили проверить
Подключил к ардуине, вроде все просто, и ничего, точнее говоря, если я все правильно нонимаю, то при отсутствии тока он должен показывать половину от опорного. опорное у меня ровно 5В, а на выходе датчика всего 1.99В вместо 2.5В. При подключении нагрузки карина почти не меняется. Пропускаем 2А, по идее значение должно увеличиться на 10% а нет, только на 2-3% максимум.
К сожалению у меня нет еще одного что бы проверить с другим датчиком. Может кто уже сталкивался с этим.
Заранее спасибо
Может у вас напряжение питания риже 5в?
проще мультиметром проверить
откуда взяли 10% на 2а? Прочитайте даташит, там другая формула. Что-то типа 66мв на ампер, но не уверен, что это для 20а версии
Проверьте наличие питания +5 В на самой микросхеме. Проверьте наличие +2,5 В без нагрузки на выходе самой микросхемы. Если это не так, то видимо проблемы с микросхемой.
Aоткуда взяли 10% на 2а? Прочитайте даташит, там другая формула. Что-то типа 66мв на ампер, но не уверен, что это для 20а версии
Про формулу спасибо, я почему-то думал что там все предельно-линейно.
Схема питается от выхода 12В 500ватного блока питания от ПК.
На входе стоит L7805 по схеме из даташита. Нагрузка отсутствует.
Промерил все точки, правда я пока не выпаевал сам чип из платы.
Результаты такие, ( мерил и на 3 пинах сенсора и на чипе, результаты одинаковые )
VCC <-> GND = 5.000V
OUT <-> GND = 1.937V
OUT <-> VCC = 3.064V
GND <-> GND = 0.001V
Ума не приложу что делать дальше... :-(
Принять за ноль и считать от него... :) У меня ноль где-то в районе 518 единиц АЦП - и ничего, меряет как-то, хотя счетчика из него не получается из-за большого количества помех в линии.
Я имею 50-ти амперовый датчикй тока - в нём на холостом ходу на выходе 2,5 В. Попробуйте то напряжение на выходе, что имеете при токе 0 А принять за "исходное". Затем, используя компьютерный блок питания, пропустить через датчик ток величиной около 10 А (например используя в качестве нагрузки автомобильные лампы). Измерьте изменения выходного напряжения при разных направлениях протекания тока через датчик. Если приращения соизмеримы и соответствуют расчётным, значит с этим датчиком "можно жить".
И ещё. Попробуйте запитать не от компьютерного блока питания пятью вольтами, а от какого либо другого - ну хотя бы от USB. А вдруг блок питания помехи даёт или 7805 "звенит"?
спасибо всем ответившим.
Провел еще одну серию экспериментов, питание 4 аккумулятора Eneloop и на чипе и на коннекторе сенсора одни и теже значения.
VCC <-> GND = 5.34V
OUT <-> GND = 2.07V
OUT <-> VCC = 3.27V
т.е. такой неправильный сдвиг это явно не проблема питания
Если использовать формулы вот отсюда заменить коэффициент нужным, то расчеты все равно получаются неправильными
I = ( count - 394 ) * 0,048828125; где 394 это показания при 0, а 0,0488 коэффициент пересчитаны для нашего чипа с учетом максимум на 20А.
Согласно амперметру я пропускаю ток 1.71А переменного тока через нагрузку ( отдельный трансформатор ).
максимальное и минимальное значение получаемое в результате 1 сек считываний следующие
min = 380
max = 409
cnt = 4553 - количество считанных значений
если пересчитать по формуле то мин=0,683 а макс 0,732, т.е. датчик на что-то там реагирует конечно, но как-то не по плану. В ближайшею неделю должны приехать еще 2 датчика один на 20 и другой на 5А, буду ставить новые эксперименты. Надеюсь что просто этот конкретный сенсор битый.
Глупый вопрос. Вы чем напряжение замеряете?
Что-то настораживает меня в Ваших измерениях:
min = 380
max = 409
cnt = 4553 - количество считанных значений.
Можете ли сделать измерения тестером (мультиметром) на постояннном токе? И хотя бы током 2...5 А, чтобы можно было увидеть изменения.
Глупый вопрос. Вы чем напряжение замеряете?
Мерил Fluke 73 III, в режиме измерения постоянного напряжения, при отсутствии тока через нагрузку и с отключеной нагрузкой вовсе, одно и тоже....
При подключении переменного папряжения к нагрузке через трансформатор, отключил батарейный блок, вернул сенсор в прототип и считывал значения с входа A4 Arduino Pro Mini 328P 16M.
Я только начинаю разбираться со схемотехникой, может я чего не так делаю ?
С софтом у меня нет никаких проблем, там мне все понятно и просто, а вот схемотехника это то место где слова "магия" и "чудо" я вспоминаю не реже чем слова "напряжение" и "сила тока" :-)
Что-то настораживает меня в Ваших измерениях:
Да не, это - нормально для ACS712, там просто надо усреднять значения и выкидывать явно "лишние". У меня делается усреднение по сотне замеров - и то показания слегка гуляют.
Что-то настораживает меня в Ваших измерениях:
min = 380
max = 409
cnt = 4553 - количество считанных значений.
Можете ли сделать измерения тестером (мультиметром) на постояннном токе? И хотя бы током 2...5 А, чтобы можно было увидеть изменения.
Так это переменный ток 50Гц с силой 1.71А. тут скорее мешает то что расстояние между мин и мах должно быть раз намного больше для этого сенсора и этого тока.....
Ну тогда имерьте в прототипе показания без тока через датчик. Затем пустите постоянный ток через датчик - вычислите разницу показаний. Поменяйте полярность протекания тока через датчик - вычислите новую разницу показаний. Если эти две разницы соизмеримы, значит от датчика ещё может быть какой либо толк. Иначе - датчик станет предметом экспериментов для любознательных (что тоже полезно).
В идеале сделать так. При наличии осциллографа посмотреть выходной сигнал с датчика, когда через него протекает ток - возможно запитать утюг, электрочайник. Сколь нибудь грамотный электронщик Вам прокомментирует результат увиденного, или фото "в студию" (т.е. сюда).
В идеале сделать так. При наличии осциллографа посмотреть выходной сигнал с датчика, когда через него протекает ток - возможно запитать утюг, электрочайник. Сколь нибудь грамотный электронщик Вам прокомментирует результат увиденного, или фото "в студию" (т.е. сюда).
Точно про осциллограф забыл, щас попробую смастерить...
Такая, весьма "слабенькая" зацепка. Посмотрел даташит на датчик и вижу, что к выводу "5" подключен конденсатор: С1 или С2 - по фото точно не видно. Через этот вывод можно влиять на выходное напряжение. Если допустить, что паяли плату не очень хорошим флюсом (или не промыли как следует), то выходное напряжение может "уйти" от положенных +2,5 В. Когда плату не станет жалко, отдайте на перепайку и отмывку электронщику. А вдруг что и получится.
Где вы в даташите увидели, что можно влиять на выходное напряжение?
в общем если все правильно замерили, то у вас проблема или с микросхемой или с тем как она впаяна.
у вас получается отклонение при нулевом токе аж 500мв. Это явно за пределами шума (не помню точно значение из даташита, посмотрите, но оно точно меньше)
Возможно или токопроводящий флюс остался на плате или сопли припоя. Осмотрите плату под лупой, промойте спиртом
Откройте даташит на данную микросхему и найдите рисунок "Functional Block Diagram", а в рисунке вывод
FILTER (Pin 6). Затем я готов продолжить дискуссию о возмжности влиять на выходное напряжение.
Проверил одну из двух таких. Все работает. Да, видно, что шумит в р-не мВ. При нуле тока около 2В на выходе. Ток не гонял, ясно, что работает.
Вчера получил еще 2 датчкика, на 20А и на 5А, и они работают как и ожидалось, т.е. при отсутствии напряжения 2.5( +/- 0,03В ) вольтметр хоть и показывает что все стабильно, но МК говорит что в течении секунды значения менялись от 509-514. Это конечно не камельфо, но для начала сойдет, и есть с чем поиграться.
Так что первый мой сенсор видимо имел битый чип.
Всем большое спасибо. :-)
Где то читал, что у датчиков построенных по принципу как ACS712, заметный шум выходного сигнала в покое. Даже график был.
Где то читал, что у датчиков построенных по принципу как ACS712, заметный шум выходного сигнала в покое. Даже график был.
избавьтесь от догадок, читайте даташит
Есть полезная статья о датчиках в журнале "Современная электроника" декабрь 2004, стр. 18. Правда там речь о датчиках ACS750.
Дошёл до этого датчика (20А). Кто углублялся, подскажите: выходное значение с датчика меняется в еденицу времени при изменении тока по синусоиде или выводится уже действующее значение? Если значение на выходе меняется вместе с током, то оно может составлять и 5% и 25% и даже 125% от действующего, а значит о какойто точности вобще нечего говорить.
напряжение пропорционально току. если ток переменный значит и напряжение на выходе переменное. и действующее значение нужно считать
а вы думали вам сразу в действуещее пересчитает сам?
а при чем здесь связт изменение переменного тока с точностью? подход изначально неверен
Я закон ома знаю. Дело в том, что даже если предположить что реактивный ток равен нулю(при подключении датчика к переменномк току) не нужно забывать что значение тока в цепи постоянно меняется по величине и направлению. Ключевое тут "по величине". Деперь мы измеряем "ток" 100 раз и усредняем значение. Вот тут интересней начинается. Первое из ста замеров попадает, допустим, на 1/16 периуда, второе, на 1/32 периуда, третье на 1/12 и т.д. А истинное значение тока только в 4-х точках синусоиды - это и есть действующее значение, но найти эти точки мы не можем, только расчитать, сняв значения тока только в 2-х уже точках, это максимальное значение первого полупериуда, и минимальное значение второго, потом разделить на корень квадратный из 2-х (я делю на 1,4).
В описании примеров часто используют выражение " отбросить всё лишнее" это как, извините? Контроллер сам что-ли произведёт замер только в 1/4 и 3/4 периуда?
Вот смотрите
Нужный нам ток это номинальный, а замерить мы можем гже угодно (зелёные точки). Усредняй-неусредняй, а даже примерно точных значений не получится.
И я не нашёл ниодного примера где это учитывается. Вот и думаю, что что то упускаю.
Вы не можете за один раз получить действующее значение.
Нужно читать в течении периодна ( или полупериода ) а потом среднеквадратичное :-)
так точки не любые же нужны, а красные. вы же не постоянку измеряете
а чтобы их найти нужны остальные. их и нужно отбрасывать. делаете какое то количество замеров, минимум 1 период, заоплняете массив, находите минимумы и максимумы
находите амплитуду обрабатываете. остальные вам не нужны
Ага, значит мысли у нас одинаковые. В большннстве примеров я этого не просматриваю. Замеряют 10 или 100 раз, а потом просто находят среднее значение. Я пробовал замерять только первый четвертьпериуд, когда ток идёт на "наростание" и оставлять для вывода максимальное (с предварительным расчётом действующего),
но что то не выдаёт, видемо изза шумов на аналаговом порту. Буду пробовать дальше.
значение нулевого тока вы знаете? просто не пойму почему у вас i_zerro постоянно уменьшается
не убирая например шумы просто делаете постоянные измерения. нашли максимум записали в переменную. дальше измеряете нашли минимум записали. (max-min)/(2*sqrt(2)) получите действующее значение
если в точках min и max записать время текущее можно и частоту посчитать
лучше запоминать например 5 периодов чтобы избавится от мусора. посчитать среднее. график вам не нужен, поэтому просто запомнить 5 максмумов и 5 минимумов. посчитать ток. если какая то точка измеренного резко выбивается из значений остальных ее не учитывать и посчитать среднее. просто иголки не редкость
значение нулевого тока вы знаете? просто не пойму почему у вас i_zerro постоянно уменьшается
i_zerro изменить мне не даст компилятор
(max-min)/(2*sqrt(2)) получите действующее значение
Это вобще что? (пост №26, min и max дадут "0")
ноль (при любых значениях тока) делим на 2,8 (2 множим на корень из двух).
с постояным током проблем вроде ни у кого нет, а вот с переменным до конца никто так и не разобрался. Залазят в дебри, изварачиваются, как дождевые червяки чтоб запутать себя и других, накручивают коды, из которых добрую половину можно просто выкинуть как мусор, а вторая половина что то считает, а что именно ХЗ, но результат есть и ладно.
Будем думать дальше...
у вас ноль синусойды с этим датчиком не в 0 (нуле) вольт входного сигнала ацп. оба значения положительны. мы же с вами не о матиматике в общем говорим а о конкретном датчике
у вас ноль синусойды с этим датчиком не в 0 (нуле) вольт входного сигнала ацп. оба значения положительны. мы же с вами не о матиматике в общем говорим а о конкретном датчике
Я ж не спорю. В моём случаи "0" это 610 на аналоговом порту
ну да ладно, раз не спорите
опираться можно на ноль и max или min, хотя точнее на max и min, точнее будет
Ну в общем так и есть. Вроде что то получилось. Нужно поймать максимум и минимум, вывысти ноль а вотом само значение. Дальше путём несложних расчётов получил кофициент 3,90625 (точнее 0,0390625), но для получения сотых ампера умножаю на 3,91, печатаю делённое на 100 ну и т.д. Даже немного удивился когда подключил ещё мультиметр и разница на 9 амперах составляла 0,03 - 0,04 А. Это терпимо. На постоянке не пробовал, и почему получается сразу действующее значение так и не разобрался.
можете картинку и алгоритм попроще написать. не пойму до конца. вроде вы вначале делаете как надо, а потом уже нашли коэффициент и в конце у вас сразу действующее значение
если верить, что характеристика датчика линейная во всём диапазоне, то всё выглядит так :
- тока нет - Ардуина выдаст 511
- нафильтровали из кучи замеров 1 макс и 1 мин ( при линейной характеристике датчика достаточно одно )
- Ардуина для макс даёт, например, 911, а при мин 111
- считаем амплитуду положитПолуПерида = ( 911 - 511 ) *5 / 1024 = 1,953 V
- считаем амплитуду отрицПолуПерида = ( 111 - 511 ) *5 / 1024 = -1,953 V
из даташита чувствительность датчика, например, 102 mV / A ( значение с потолка !!!!!!!!!!!! )
- считаем ток через датчик = 1,953 V / 102 mV / A = 1,953 / 0,102 A = 19,147 A
если свести всё в одну строку то = ( 911 - 511 ) * 5 / 1024 / 0,102 = ( 911 - 511 ) * 0,047870..... = 19,147 A
нууууу, и потом на 0,707.....
если точка ноль датчика смещена от 2,5 V или положительная часть характеристики отличается от отрицательной - датчик использовать можно, но только через калибровку его ( не очень сложный процесс )
Соответствующие уровни чувствительности составляют 185 мВ/А, 100 мА/В и 66 мВ/A.
блииииииииииин, с потолка ошибка 2 mV !!!!!!!!!!!!!!!!!!!!!!!!!!!!! :)
вот здесь всё это есть
http://www.rlocman.ru/shem/schematics.html?di=113339