Чтение датчика давления от 4 до 20 мА с использованием uno
У меня есть датчик давления OsiSense™ XMLP, который я хочу считать с моего Arduino uno. Это схема, которую я собираю для измерений от 4 до 20 мА.
Я читал в Интернете, чтобы узнать, как построить схему. Можете ли вы сказать мне, правильно ли это?
Кроме того, я не понимаю, почему это работает, и я надеюсь, что вы сможете исправить мое мнение. Следуя закону Ома, мы хотим оставить 5 В, когда через цепь проходит 20 миллиампер. Мы знаем, что напряжение в цепи постоянно составляет 24 вольта (короткие кабели), и мы знаем, что максимальный ток составляет 20 миллиампер, поэтому моя математика говорит:
Сопротивление = Напряжение / I (ток)
Нам нужно оставить 5 вольт для Arduino, чтобы он мог считывать показания датчика при максимальном давлении, поэтому мы вычитаем 5 из 24.
Сопротивление = 19/20 мА
Поэтому резистор, который нужно выбрать, чтобы дать нам максимум 5 вольт, это резистор 0,95 кОм. Я не понимаю, где резистор 250 Ом? пожалуйста, помогите.
@resolver101, 👍1
1 ответ
Лучший ответ:
Чтобы считать ток с помощью Arduino, вам сначала нужно преобразовать этот ток в напряжение, и вы делаете это, пропуская его через сопротивление. Вас интересует падение напряжения на этом сопротивлении при изменении тока.
Для тока 4–20 мА вам нужно выбрать сопротивление, обеспечивающее напряжение в диапазоне 5 В, которое может считывать Arduino.
Самое большое падение напряжения на резисторе произойдет, когда ток будет максимальным (20 мА), поэтому вы можете использовать это для расчета подходящего номинала резистора:
R = V/I = 5 / 0.02 = 250
И для того же сопротивления при минимальном токе:
V=IR = 0.004 × 250 = 1
Таким образом, на резисторе вы получите от 1 В (4 мА) до 5 В (20 мА).
Резисторы на 250 Ом встречаются не так часто, поэтому вместо них следует использовать более распространенное значение, например, 220 Ом. Замена 250 Ом на 220 Ом даст напряжения:
@20mA: V=IR = 0.02 × 220 = 4.4V
@4mA: V=IR = 0.004 × 220 = 0.88V
И то, и другое удобно в пределах диапазона Arduino, а также дает немного пространства для маневра в случае любых небольших условий перегрузки по току.
Также может быть полезно защитить аналоговый вход Arduino с помощью резистора + стабилитрона, чтобы предотвратить повреждение в случае, если резистор выходит из строя / отключается, и вы получаете полное выходное напряжение, подаваемое непосредственно на Arduino:
- Подключение датчика давления к Arduino для сбора данных о давлении и времени
- Чувствительный к силе резистор Arduino с ЖК-дисплеем
- Реле давления 4-20 мА
- Все ли контакты Arduino Uno выводят 5 В?
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
- Получение BPM из данного кода
- Как подключить более 10 датчиков к Arduino uno r3
Спасибо, что так быстро вернулись ко мне. Я все еще не понимаю правильно. Сегодня вечером я прочитаю еще раз и дам ему впитаться. Как вы можете сказать, я довольно новичок в этом, поэтому, возможно, упускаю какое-то базовое понимание., @resolver101
Во второй схеме R2 предназначен только для ограничения тока через стабилитрон в случае перегрузки. R1 такой же, как и в первой схеме, и пропускает через себя 99,9999% тока для создания падения напряжения., @Majenko
@Majenko, каков ток утечки 1N4733A при 5 В? Когда R1 получил ослабленную ногу, а 24 В будет на R2, то постоянное напряжение 24 В требует резистора 4 Вт для R2. Для базовой защиты также подойдет установка R2 10k и удаление стабилитрона., @Jot
Вы зациклились на 24В. Забудьте о 24В. Это максимум, что может быть при разомкнутой цепи. Он *никогда* не должен превышать 20 мА, что составляет 40 мВт через резистор 100 Ом., @Majenko
Извините, забыл, что ток максимум 20мА. Утечка стабилитрона, вероятно, слишком мала, чтобы иметь какое-либо влияние. Тем более, когда вы устанавливаете 20 мА на 4,4 В. Еще раз извините. Я получаю это сейчас., @Jot