Почему ACS712 показывает ток без нагрузки?
Обновлено Редакция GAW
ACS712 — датчик на эффекте Холла: при нулевом токе выход равен половине питания, VCC × 0,5, и смещается на 185 мВ/А у исполнения на 5 А (Allegro ACS712-DS, с. 5–6). Ноль и чувствительность пропорциональны питанию — это ратиометрическое измерение.
Откуда берётся «ток» без нагрузки
Наш расчёт для ACS712ELCTR-05B (185 мВ/А):
| Причина | Сдвиг выхода | В пересчёте на ток |
|---|---|---|
| Питание 4,90 В вместо 5,00 В, АЦП с отдельным опорным, программа вычитает 2,500 В | −50 мВ | −0,27 А |
| Питание 5 В ± 5 %, от 4,75 до 5,25 В, АЦП с отдельным опорным | ±125 мВ | ±0,68 А |
| Шум, размах при CF = 47 нФ | 21 мВ | 0,11 А |
| Дрейф нуля при охлаждении на 20 °C | около 5 мВ | около 0,03 А |
где U0 — измеренный ноль, а не константа 2,5 В. Если АЦП Arduino Uno работает с опорой AVCC от того же питания 5 В, изменения питания сдвигают ноль и шкалу АЦП одинаково и сокращаются. С внешним точным опорным напряжением или у ESP32 со своим опорным они войдут в ошибку целиком.
Как сделать правильно
- При старте, с выключенной нагрузкой, усреднить несколько сотен отсчётов и запомнить их как ноль.
- Считать ток от этого нуля, а не от 2,5 В.
- Шум уменьшить конденсатором на выводе FILTER — с внутренним резистором 1,7 кОм он образует RC-фильтр, частоту которого считает калькулятор RC-фильтра, — или программным усреднением.
Почему ACS712 вообще плохо подходит для малых токов и чем его заменить — в статье «Измерение тока».
Похожие вопросы
Ноль скачет на ±2–3 отсчёта АЦП. Это неисправность?
Нет, это шум. У ACS712-05B размах шума — 21 мВ даже с конденсатором 47 нФ на выводе FILTER, а шаг 10-битного АЦП Arduino при опоре 5 В — около 4,9 мВ (наш расчёт). Значит, разброс в несколько отсчётов нормален; его уменьшают усреднением или конденсатором на FILTER.
Влияет ли на ноль магнит или провод рядом?
Да: датчик Холла меряет магнитное поле, и чужое поле от магнита, дросселя или соседнего провода с большим током сдвигает выход так же, как измеряемый ток (наш вывод из принципа работы). Датчик располагают подальше от таких источников.
Как измерить ноль, если нагрузку нельзя выключить?
Тогда ноль калибруют один раз на столе — при той же температуре и том же питании — и сохраняют в памяти. Но питание и температура в работе будут другими, поэтому лучше предусмотреть способ отключать нагрузку на время калибровки.
Источники
- Allegro MicroSystems. ACS712: Fully Integrated, Hall-Effect-Based Linear Current Sensor IC with 2.4 kVRMS Isolation (ACS712-DS, Rev. 22, 2024) — с. 5: питание 4,5–5,5 В, выход при нулевом токе VCC × 0,5; с. 6: ACS712ELCTR-05B — 185 мВ/А (180–190), шум 21 мВ размах при CF = 47 нФ, дрейф нуля −0,26 мВ/°C ниже 25 °C; определения: VIOUT(Q) номинально VCC/2, электрическое смещение VOE — отклонение от VCC/2, в амперах — VOE / Sens; с. 10: пропорциональность нуля и чувствительности питанию
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P megaAVR Data Sheet (DS40002061B) — 10-битный АЦП с опорным напряжением AVCC — пересчёт шага АЦП в ток для Arduino Uno
Нашли ошибку?
Смотрите также
- ACS712Датчик тока Холла: выводы, 5/20/30 А, 185/100/66 мВ/А, фильтр, изоляция, АЦП
- Измерение токаШунт и усилитель, датчик Холла ACS712, трансформатор тока: точность, шум, развязка
- Логометрическое измерениеДатчик и опорное АЦП от одного питания: колебания питания сокращаются
- Эффект ХоллаНапряжение поперёк проводника с током в магнитном поле
- RC-фильтр и постоянная времениЧастота среза, подбор R и C, время заряда