Как подключить датчик 4–20 мА к Arduino?
Обновлено Редакция GAW
Датчик 4–20 мА — источник тока: он сам держит в петле ток от 4 до 20 мА, пропорциональный измеряемой величине. Arduino измерять ток не умеет, поэтому в петлю ставят резистор на землю и по закону Ома читают напряжение на нём. Схема для двухпроводного датчика:
- Плюс источника 12–24 В — к плюсу датчика.
- Минус датчика — к резистору 200 Ом, второй конец резистора — к земле.
- Минус источника — к GND Arduino.
- Верхний вывод резистора через резистор 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 мА от калибратора петли.
Источники
- Texas Instruments. XTR115, XTR116 4-20mA Current-Loop Transmitters, SBOS124C — питание петли 7,5–36 В; ограничение выходного тока около 32 мА — пример типичного двухпроводного передатчика
- 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 мА — отказ
- 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 В
Нашли ошибку?
Смотрите также
- Токовая петля 4–20 мАЖивой ноль, 2/3/4-проводные схемы, бюджет петли, 250 Ом и АЦП, NE43, HART
- Токовый шунтМощность, выход усилителя, АЦП, погрешность
- АЦП AVR: ADPS и кодЧастота АЦП, время преобразования, код по напряжению, ADMUX и ADCSRA
- Как получить 0–5 В из сигнала 4–20 мА?250 Ом и вычитание 1 В на ОУ, RCV420 или в программе