Перейти к содержанию

Как подключить датчик 4–20 мА к Arduino?

Обновлено Редакция GAW

Датчик 4–20 мА — источник тока: он сам держит в петле ток от 4 до 20 мА, пропорциональный измеряемой величине. Arduino измерять ток не умеет, поэтому в петлю ставят резистор на землю и по закону Ома читают напряжение на нём. Схема для двухпроводного датчика:

  1. Плюс источника 12–24 В — к плюсу датчика.
  2. Минус датчика — к резистору 200 Ом, второй конец резистора — к земле.
  3. Минус источника — к GND Arduino.
  4. Верхний вывод резистора через резистор 10 кОм — к входу A0.
ТокНа 200 Ом (наш расчёт)Код АЦП при опорном 5 ВЧто означает
ниже 3,6 мАниже 0,72 В147 и меньшеотказ или обрыв (NAMUR NE43)
4 мА0,80 В≈ 164начало шкалы
12 мА2,40 В≈ 492середина
20 мА4,00 В819конец шкалы
21 мА4,20 В860граница отказа
25 мА5,00 В1023 (насыщение)предел измерения

Код считается как N = U · 1024/Uоп (DS40002061B, разд. 24); уровни отказа — по NAMUR NE43 в изложении TI (DAC161S997, разд. 9.2.2). Один отсчёт — около 24 мкА, то есть 0,15 % шкалы 16 мА (наш расчёт).

Зачем резистор 10 кОм перед входом

Если датчик закоротит или превысит ток, на резисторе 200 Ом окажется больше 5 В: у XTR115, например, ток ограничен на уровне около 32 мА — это 6,4 В (наш расчёт). Предел для вывода ATmega328P — VCC + 0,5 В. Резистор 10 кОм ограничит ток через защитные диоды входа до долей миллиампера, а для АЦП он ещё допустим: Microchip рекомендует сопротивление источника не выше 10 кОм (разд. 24.6.1).

Точность

На результат влияют допуск резистора и опорное напряжение. По умолчанию опорное у UNO — питание 5 В, и оно гуляет вместе с USB, — подробности в ответе «С какой точностью Arduino измеряет напряжение?». Резистор с допуском 0,1 % или калибровка по 4 и 20 мА убирают основную ошибку. При питании от USB опорное ниже 5 В, и насыщение наступит раньше 25 мА — около 23–24 мА, подробнее в ответе «Почему показания analogRead меняются при питании Arduino от USB?». При токе ограничения XTR115 около 32 мА на 200 Ом рассеивается 0,2 Вт (наш расчёт) — резистор берут не меньше чем на 0,25 Вт с запасом. Мощность резистора и его номинал под другой ток подберёт калькулятор шунта.

Теория петли, питание и NAMUR — в статье «Токовая петля 4–20 мА». Если нужен выход 0–5 В вместо 0,8–4 В, смотрите ответ «Как получить 0–5 В из сигнала 4–20 мА?».

Похожие вопросы

Почему не 250 Ом, как в промышленных приборах?

250 Ом превращают 4–20 мА в стандартные 1–5 В, но для АЦП с опорным 5 В ток 20 мА — это уже верх шкалы: 20,5 и 21 мА прочитаются как один насыщенный код. С 200 Ом шкала кончается на 25 мА, и программа отличит перегрузку датчика от нормального верхнего предела.

Можно ли питать датчик 4–20 мА от 5 В Arduino?

Двухпроводному датчику обычно нужно больше. Наш расчёт: у передатчика с минимальным напряжением 7,5 В, как у XTR115, при 20 мА и резисторе 200 Ом нужно не меньше 7,5 + 4 = 11,5 В, без учёта проводов. Берите источник 12–24 В, минус которого соединён с землёй Arduino.

Какой резистор лучше взять для точности?

С допуском 0,1 % и малым температурным коэффициентом: погрешность резистора прямо входит в результат. Либо обычный 1 % с калибровкой по двум точкам — 4 и 20 мА от калибратора петли.

Источники

  1. Texas Instruments. XTR115, XTR116 4-20mA Current-Loop Transmitters, SBOS124C — питание петли 7,5–36 В; ограничение выходного тока около 32 мА — пример типичного двухпроводного передатчика
  2. Texas Instruments. DAC161S997 16-Bit SPI-Programmable DAC for 4-20 mA Loops, SNAS621A — разд. 9.2.2 — уровни NAMUR NE43: 3,8–20,5 мА — измерение, ниже 3,6 мА и выше 21 мА — отказ
  3. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet, DS40002061B — разд. 24 — 10-битный АЦП, результат = VIN · 1024 / VREF; разд. 24.6.1 — источник сигнала не выше 10 кОм; табл. 29-15 — вход от 0 до VREF; предельные режимы — напряжение на выводе от −0,5 до VCC + 0,5 В

Нашли ошибку?