Как стать автором
Обновить

Комментарии 86

U=unidirectional, т.е. одной полярности, при этом он может быть переменным, но не уходящим в отрицательные значения.

Спасибо большое за труды.
Реквестирую вторую часть, как померять ток на АС 220 и посчитать потребляемую мощность.

Да, хорошо. Тоже думал по поводу измерения переменки, помучаю чайник)) Кстати судя по комментариям ниже придется ради эксперимента 3-4 датчика подключить, чтобы убедить в их минимальной погрешности.
Хорошее предложение.
Советую учесть, что вы работаете с измериловкой. Тут очень легко напороться на трудности, которые не очевидны на первый взгляд. В первую очередь это касается точности измерений. Вся ваша радость от быстрого решения пройдет быстро, когда вы поставите второй датчик, а он покажет вам плюс 0.5А. Или нагреете его на 20 градусов и поплывут ваши показатели. Да что-там. В данном случае замена блока питания может принести неприятный сюрприз.
Советую обращать на это внимание в первую очередь еще до того, как вы выберете датчик. Например эти самые ACS758 по даташиту обладают весьма посредственными характеристиками по точности, доходящим аж до 3%. Не стоит упоминать, сколько это на 3-х амперах от 100. А также там есть нехилая нелинейность, зависимость от температуры, дрифт нуля и естественно зависимость от напряжения питания.
В общем в единственном экземпляре после калибровки можно добиться приемлемых результатов, но так чтобы поставил и забыл, надо еще работать и работать. Вплоть до того, что я вместо этих выбрал другие более точные датчики, так как сразу понял что с этими дела не будет.
Поддерживаю. Помня, что датчик аналоговый нужно и сигнал с него дотянуть до АЦП правильно и измерить его правильно (чтоб от напряжения питания МК показания не плыли). На моей памяти алегровские датчики дохли как мухи (правда на 30А) — возможно брак, но осадочек остался…

А когда применение датчиков Холла оправдано по сравнением с токовым трансформатором?

Датчики Холла могут измерять постоянный ток (переменный с постоянной составляющей, или переменный с очень низкой частотой и т.п.).
Еще им не нужен измерительный шунт, усилитель, а также нет проблемы с разорваной вторичной цепью. Также они не насыщаются.
Но есть проблема дрейфа нуля и им нужно питание, лучше всего отфильтрованое. Ну и дороже они, чем ТТ
Нужно понимать, что эта статья лишь описывает принцип и не является устройством. Зачем говорить о точности голой железки без обвязки?

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

3% — это откуда такие данные? 1% это 1А. Таких погрешностей нету даже при минусовой температуре.

Вообще говоря о точности и надежности необходимо рассматривать готовое устройство и схемотехническое решение. Тут же лишь обзор компонента. Возможно чуть дальше я покажу как получить от него реальные +-0,01А в устройстве.
Очень классные штуки, на самом деле — впервые столкнулся с ними в киловатном BLDC контроллере. То есть, по сути, они как раз для контроля пиковых токов и нужны (чтобы не сжечь двигатель/батарею/проводку. но именно для контроля, а не отсечки, как предохранитель).

Стоит отметить, что это вообще (пока?) единственное, что удалось найти с адекватными размерами и ценой для таких мощностей.
Если кто-то знает аналоги — был бы признателен.

На днях возился с младшей серией тех же датчиков — ACS712. Предел измерения — от 5 до 30 А, поэтому они умещаются в SOIC-8 без дополнительных выводов.


Вот такие картинки получались

Сверху — ток через люминесцентную лампу, снизу — через лампу накаливания. После предусилителя на ОУ, естественно.

Тоже такие использую (на 5А) для защиты цифры. Весьма удобные корпуса и измерять можно до +-1 мА без особых ухищрений))
Не надо высчитывать константу, надо просто сделать самокалибрацию, что бы при первом включении (или по нажатию какой кнопки) измерялось нулевое безтоковое состояние на выходе, сохранялось в EEPROM и потом уже плясать от него, в идеале можно еще сделать дополнительную калибрацию по току, скажем для 5 или 10А по точному амперметру.
А разве в STM нельзя завести опорное напряжение для АЦП ( Питание датчика то есть)? По моему это самый точный и правильный способ для данного случая…
можно, но где гарантия что сама микросхема тоже точно 1/2U выдавать будет
а ее питание и так мерять надо будет, что б его дрейф по времени компенсировать, всего пара команд добавится, но точность резко выше будет, достаточно будет раз подать питание в бестоковом состоянии или кнопку нажать, и перекалибровать раз в год можно будет.
При производстве вы откалибровали микросхему и как бы ничего в ней не поменяется… А вот если Питание под нагрузкой просядет то привет приплыли?
его тоже постоянно измерять надо
как я понимаю, если завести его как опорное — то не надо?
проще измерять, а то опорное оно для всего ADC использоваться будет
надо постоянно про это помнить, переключать регистры на другое опорное если что другое измерять надо, обязательно в паре мест забудешь и т.д.
Для STM32 напряжения как питания, так и опорное аналоговой части, не могут превышать 3V6. Если датчик питается от 5V, то…
так там же резистивный делитель, так что будет то?
Резистивный делитель со своими допусками на каждый резистор -> калибровка ещё и делителя.

Нет, я согласен, что входное питание надо измерять. Но, на мой взгляд, лучше иметь стабилизированное питание аналоговой части (LDO 5V->3V3) и замерять всё остальное относительно него.
А зачем вообще датчик питать от 5 V и вот с этим вот всем делением возиться?
Не за чем. Просто так было сделано у автора: питание датчика — USB 5V; питание MCU — на своей плате.
При изготовлении законченного устройства питание проще сделать одинаковым, да (как вы в самом начале и написали, собственно).
Во-первых, ИОН можно подцепить к АЦП, это необходимо если нужна супер точность. Во-вторых, в статье я написал про делитель напряжения, чтобы напряжение на входе АЦП не превысило максимально допустимое. В-третьих, запитать от 3.3В можно, но при питании ниже 4.2В выход начинает «плясать», порядка +-120 мВ, поэтому стабильность выше при рекомендованных 5В.
В одной катушке резисторы, как правило, одинаковые. Указанный допуск — это расхождения между партиями. Соответственно, если набрать делитель из одинаковых резисторов из одной катушки, калибровать ничего не нужно.
Слова «как правило, одинаковые» — не самые хорошие =) Особенно, если мы говорим о *простых* резисторах с погрешностью 5% или о более точных с погрешностью 1%.

Есть где-нибудь заявление производителя, что резисторы будут точно одинаковыми в одной партии? Просто, просматривая даташит (http://www.vishay.com/docs/20035/dcrcwe3.pdf), то в месте описания reel, такого упоминания нет. Думаю, в этом случае, стоит относиться ко всем резисторам с максимально возможной погрешностью (тут — 1%). Просто во избежание.

Единственное, они пишут, что reel соответствует спецификации IEC 60068-3. Сама она платная, но пробежав по оглавлению (https://webstore.iec.ch/preview/info_iec60068-3-13%7Bed1.0%7Db.pdf) я сделал вывод, что она о геометрических параметрах (и, соответственно, о монтаже на установщике).
а зачем калибровать резистором? Для этого есть код, достаточно измерить точно параметры делителя и внести поправку. На этом все. Такое действо актуально даже для 0.5-1% резюков.
Верно. Просто если у вас несколько таких плат, то эту калибровку надо делать на каждой плате.
Если резисторы с одной партии, так же как и датчики, то для получения +-0.5% хватит подобрать на одной и дальше расклонировать прошивку по остальным. Большую точность от меня по крайней мере еще никто не требовал))
В данном случае «как правило» стоит понимать как «я не встречал обратного».
Это даже нужно сделать, но к сожалению спасет не от всех проблем.
Проблема с самокалибровкой в том, что часто в измеряемой цепи ток всегда есть (например как вы откалибруете прибор если датчик тока меряет собственное потребление этого прибора?)
Я собственно считаю, что раз у микросхемы ratiometric output ( не знаю толкового перевода) то и цифровать ее надо от того же напряжения питания
Самый простой способ это завести напряжение с делителя на одинаковых резисторах на второй канал АЦП, измерения проводить измеряя оба напряжения и простой операцией вычитания. В некоторых контроллерах для этого предусмотрен дифференциальный режим работы АЦП и сигналы двух входов вычитаются ещё до подачи на АЦП. но… всё это не нужно, если в качестве опорного выбрать напряжение питания и датчик будет подключен к тому же напряжению что и АЦП, просто старший бит использовать как знаковый — на многих АЦП предусмотрен такой режим работы когда результат 12-битного измерения расширяется на 16-битный как знаковое число — под такое использование повидимому и предусмотрен данный датчик.
День добрый, вопросы новичка.
Я правильно понимаю что чем больше mV/A, тем точнее я смогу снять показания?
Проводилось ли тестирование при низких токах (->0), средних и высоких (применительно к этому датчику ->100A)? Точность не изменяется?
> Я правильно понимаю что чем больше mV/A, тем точнее я смогу снять показания?
<...> тем менее точный ADC вам нужен, чтобы снять точные показания (впрочем, у STM32 точность — 12 бит (если точнее, то берём только 10). А значит, MCU способен измерять напряжения с точностью 3mV, чего достаточно). Но тем быстрее вы упрётесь в верхний порог измерений:
1. Датчик питается 5V
2. MCU питается 3V3
3. mV/A == 100

При токе 50A уровень напряжения будет: (5V/2) + (50A*100mV/A) = 2.5 + 5 = 7.5V, что больше допустимых 3V3.
Как вы себе представляете, что датчик выдаст на выходе сигнал больший, чем его питание?
Разумеется, это моя ошибка на невнимательность. Датчик выдаст своё напряжение питания.
Основной посыл был в том, что датчик может выдать больше напряжения питания MCU.
чем больше зависимость мВ/А, тем точнее, но это связано с разрядностью АЦП. Если поставить внешний АЦП на 24 бит, то можно получить на порядок лучшие результаты, но это удорожание.

Низкий ток это сколько? 200 мА для датчика в 100А это вполне себе маленький ток. Микроамперы им разумеется не измерить, придется брать датчик с меньшим пределом, например, на 5А. Там вроде выход 180 мВ/А если память не отбило.
НЛО прилетело и опубликовало эту надпись здесь
в два раза переплачивать чем где?
лучше один раз купить рабочую деталь, чем 2 раза получить какой-нибудь перемаркированный хлам
НЛО прилетело и опубликовало эту надпись здесь
1. Вы ждете товар около месяца, а не 5-9 дней
2. Для диспута необходимо доказать, что товар перемаркирован и его параметры не соответствуют спецификации
3. Для всех деталей из китая необходимо будет проводить входное тестирование на соответствие параметров
можно еще несколько пунктов написать, но думаю и этих будет достаточно

для любительских целей купить 1-2 ардуины и радоваться это подойдет, а вот для работы или разработки — все не так уж сказочно

и да, в случае диспута Вам бесплатно остается не товар, а хлам, который и применить то можно будет с трудом
это все так, из личного опыта :)
Одно дело, если вам привезли явно что-то не то. Скажем, вы заказывали танталовые конденсаторы 470uF, а привезли танталовые конденсаторы с *маркировкой* 470 (47uF, соответственно). Это видно сразу и можно поругаться.

Но совсем другое дело, когда через месяц-полтора проданные устройства возвращаются из-за того, что эти самые танталы просто взрываются на платах (в процессе более длительных тестов пара таких кондёров взорвалась наконец-то и у инженеров на столе). Замена на кондёры *нормального* производителя и поставщика решает проблему.
Кроме перечисленного, посылку могут завернуть на таможне с заключением «коммерческая партия». Также интересно как вы будете проводить покупку на «алиэкспресс» по бухгалтерии.
В 2 раза переплачиваю? Это почему? Основная часть компонентов там дешевле китая. Но самое главное — там оригиналы. Я не хочу мучиться потом с поиском косяка, убить 2 недели чтобы понять, что компоненты хлам левый. Время оно деньги.

Да и быстрее доставка + с юр. лицом никаких проблем по белой кассе.
НЛО прилетело и опубликовало эту надпись здесь
Я вас огорчу — вы просто не умеете его готовить. Написать менеджеру по позиции не уж-то так долго? Цены там не конские, а что не на есть нормальные за оригинальные компоненты. Вроде как я не агетировал любителей китайчатины пересаживаться))) таких уже ничем не выличить к сожалению. Просто порекомендовал для тех, кто ценит свое время, оно порой стоит явно больше 8$.
Используем эти датчики на наших коптерах, хочу отметить что они очень чувствительны к помехам от ЭМП, точных цифр нет, но на датчиках ACS758LCB-100u, в зависимости от расположения силовых проводов, показания изменялись на 1-10А. Пока опытным путём не выяснил, очень нервировали такие показания на практически выключенном оборудовании, где расчётное потребление не должно было превышать 1А.
Датчики эти крайне чувствительный к наводкам, поэтому в реальном устройстве необходим ФНЧ на 150 кГц по Vout. Так же необходимо собирать данные за 20-30 замеров и потом усреднять данные, так картинка более реальная будет.
Есть и совсем бесконтактные датчики, например от Honeywell, их просто на шину крепят и всё, тоже на эфф. Холла.

Недавно пришлось работать с датчиком тока фирмы АББ, под названием FOCS, работает с оптоволокном вокруг проводника с током, измеряет поляризацию света в энтом самом оптоволокне, в общем мощная штукарация, стоит 100к Евро…
Оптический ТТ? ставите куда или игрались просто?
Стоит на мощном выпрямителе 60 кА, после 5-ти лет работы датчик стал иметь собственное мнение об измерениях далекое от реальности, пришлось заняться ремонтом…
60кА, ОМГ… это что? Электролизная ванна на алюминиевом заводе? оО
Что за диковинный источник, и не менее удивительный потребитель?
Правильно ли я понимаю?
Датчик будет давать напряжение от 1/2 Vcc до какой то величины. Идеально до VCC, но данном случае 4.33В при 100А
Встроенный АЦП мерит от 0 до VCC. Большинство контроллеров имеют 10-битный АЦП, который я могу использовать только в лучшем случае на половину своего диапазона.
Всегда можно с операционными усилителями поработать, чтобы нужный диапазон на АЦП развернуть.
Если ток только одной (положительной) полярности, то да, от 1/2 до VCC. Но зачем для таких случаев брать датчики, рассчитанные на двухполярный ток? Берите с индексом U и будет Вам диапазон от 0 до VCC :)
С индексом В более универсален, я их беру по 10-20 штук. Кто знает куда он в итоге встанет?)
С этим согласен, но это если брать их «куда-нить пригодятся», а не «вот сюда нужен датчик тока» :)
пиши лучше про сдр
как в коде на C# сделать ам демодулятор и как это выглядит с точки зрения матана и почему так, а не этак
и графики анимированные там надо

датчики такие есть на 5а, показания гуляют от магнитных полей соседних проводов
К сожалению в С# практически не обладаю знаниями, пишу на верилоге) Да и С# вроде для ПЛИС можно использовать лишь при применение NIOS на SoC.
а зачем плис? есть же rtlsdr и приемник за 10 баксов, там уже написаны заготовки, но демодуляторов нет
это игрушка и не более. Все что обладает чуйкой 0.05 мкВ и может полосу от 2 до 60 МГц оцифровать и вывести в панораму стоит уже пару тысяч баксов. Да и передачи нету. Хотя на деле у меня самая главная задача — избавиться от компа и обработать все в ПЛИС, дальше звук в кодек, водопад в STM и на TFT панельку.
Эти датчики нужно юзать очень внимательно, заботясь о том, чтобы их другие магнитные поля не пересекали. Например 30-40мм по pcb до дросселя или трансформатора импульсного источника им хватает, чтобы они превратились в показометр.
Полностью согласен, про это упоминал. Чтобы трансы не фонили на них обычно поверх обмоток мотают 1 незамкнутый виток из фольги медной и на землю. Спасает от излучения.
Ага, только поверх всего магнитопровода и виток замкнутый должен быть. Незамкнутые на каркасе это электростатические экраны, а магнитный поверх всего магнитопровода. Хотя, честно сказать, в моём случае он не сильно спасал. У этих холлов очень хорошая чуйка. Пришлось цифровой фильтр лепить, чтобы как-то выкрутиться. Плату переделывать уже не вариант было.
Очень понравились мне эти датчики, особенно гальванической развязкой с измеряемой цепью. Но паять измеряющие лапы даже 40-ваттным паяльником — сущая мука.
Есть и совсем бесконтактные датчики, например от Honeywell.
А подробнее можно?
как у них с точностью?
для коптеров.
Да, это так называемые датчики магнитного поля с линейным выходом, выдают сигнал пропорциональный магнитному потоку создаваемому током в проводнике. Они очень малогабаритные и крепятся жестко на проводник, так как при смещении датчика (удалении или приближении) будет и меняться поток в пространстве, чем ближе, тем надежнее.
Вот например такой: SS59ET, Датчик Холла линейный -/+1000G в корпусе SOT23…

В плане точности спокойно рассчитывать можно на те же +-1%. В идеале можно и лучшую точность получить. Единственный минус у них — ценник.
Есть еще вроде датчики тока в которых микросхема SO-8 просто стоит над проводником на плате и меряет его ток по создаваемому магнитному полю. Но там точность плюс минус бесконечность.
Есть и такие, кстати если верить ДШ и отзывам достаточно точные, главное выдержать зазор от «жопы» корпуса до платы. Хотя в живую не работал с такими, что-то конкретное не скажу.
А можно для них окончательную принципиальную «рабочую» схему подключения увидеть?
Рабочую схему чего именно? Я дал корм для ума и пример описал как с ними работать. В следующей статье покажу как с переменкой. Готовое устройство уже под свои задачи сами)) Если будут вопросы подсказать готов.
Я не силен в аналоговой части. С питанием понятно, а вот с выходными фильтрами я не очень понял по обрывкам брошенных фраз.
В даташите есть резистор, который включен последовательно Vout и после него конденсатор, вот эта RC-цепочка и есть ФНЧ. Она отфильтровывает шумы выше 150 кГц. Посчитать номиналы RC эти можно в любом онлайн калькуляторе для расчета ФНЧ. В статье про переменку покажу как считать «руками».
Тут бы упомянуть, что если дальше сигнал пойдёт на оцифровку АЦП то частота среза фильтра не должна быть больше половины частоты семплирования АЦП, и этот простейший ФНЧ темболее на 150кГц часто оказывается просто бесполезным. В идеале, там должен быть фильтр высокого порядка а это уже как минимум схема с несколькими операционниками и тщательно подобранными компонентами.
Это актуально если АЦП какой-то внешний, если же МК или DSP, то гораздо проще и актуальнее использовать цифровую фильтрацию, чтобы не усложнять аналоговую часть схемы.
Это актуально с любым АЦП, если не фильтровать то 100% получишь стробоскопический эффект. И больше это касается именно встроенных АЦП, имеющих небольшое быстродействие. Причём стробоскопический эффект программно отфильтровать невозможно.
Для программной обработки критически важно чтобы на вход АЦП не поступал сигнал с частотой выше половины частоты семплирования. Именно этим и должен заниматься аналоговый фильтр, а программная обработка будет делать всё остальное.
У примитивных STM32 встроенный АЦП обладает 1 Мсемплов, ФНЧ 4-го порядка уже «очищает» от верхних гармоник настолько, что шум вносимый ими сопоставим с чувствительностью. Фильтр на ОУ сделает абсолютно тоже самое, что и LC или RC, не стоит забывать о его собственных шумах. Поэтому решение усложнения аналогового фильтра несколько сомнительно.
И сколько же там бит будет на на скорости 1MS/s около 6 наверно… Да и что-то у меня закрадываются сомнения в целесообразности ЦОС на высоких скоростях в данном случае. 1 мегасемпл, при частоте ядра 72Мгц всю работу надо сделать менее чем за 72 такта на один семпл. Да и надо ли расходовать всю мощь контроллера на такую простую задачу?
Хорошего ФНЧ 4-го порядка на пассивных компонентах не получится. Даже у фильтра второго порядка без операционника уже проблемы с согласованием входного и выходного импендансов.
Представляется ли возможным измерять значения мА датчиком холла, не конкретно представленным в статье, а например каким либо другим линейным?
А смысл? Холла традиционно ставят на высокие токи, где нельзя воткнуть шунт по тем или иным причинам.
Собственно в этом и состоял вопрос, — есть ли смысл?...) Спасибо.
Заинтересовала статья. Спасибо. Вопрос — был ли опыт измерения сетевого тока или какого-нибудь высокочастотного тока. В моем случае это импульсные токи 20-100кГц, не синус, сила тока 10-50А (напряжение — амплитуда до 150В). Справится ли подобный датчик с поставленной задачей?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории