| Ваш IP: 18.212.92.235 | Online(13) - гости: 7, боты: 6 | Загрузка сервера: 1.66 ::::::::::::

Измерение унифицированного токового сигнала 4…20мА (Arduino)

Справка

Токовая петля — способ передачи информации с помощью измеряемых значений силы электрического тока. В настоящее время такой способ более распространён в инженерной практике, чем использование для этой цели напряжения. Для задания измеряемых значений тока используется, как правило, управляемый источник тока. По виду передаваемой информации различаются аналоговая токовая петля и цифровая токовая петля.

Аналоговая токовая петля используется для передачи аналогового сигнала по паре проводов в лабораторном оборудовании, системах управления производством и т. д.

Применяется смещенный диапазон 4—20 мА, то есть наименьшее значение сигнала (например, 0) соответствует току 4 мА, а наибольшее — 20 мА. Таким образом весь диапазон допустимых значений занимает 16 мА. Нулевое значение тока в цепи означает обрыв линии и позволяет легко диагностировать такую ситуацию.

Интерфейс аналоговой токовой петли позволяет использовать разнообразные датчики (давления, потока, кислотности и т. д.) с единым электрическим интерфейсом. Также данный интерфейс может использоваться для управления регистрирующими и исполнительными устройствами: самописцами, заслонками и т. д.

На Arduino можно реализовать измерение унифицированного токового сигнала 4…20 мА, для этого необходимо ток преобразовать в напряжение и подать его на аналоговый вход АЦП Arduino. Сопротивление 50 Ом преобразует ток 20 мА в напряжение 1 В. Чем точнее подобрано сопротивление 50 Ом, тем более точные будут показания прибора. Измеритель унифицированного токового сигнала 4…20 мА позволяет задать произвольные значения для тока 4 мА и 20 мА, этими значениями можно задать наименьшую и наибольшую величину измерения (диапазон измерения). Этими величинами может быть ток, напряжение, давление, температура и т.д. Так же можно задать кол-во знаков после запятой у измеренного значения.

Значения наименьшей и наибольшей величины измерения, а так кол-во знаков после запятой у измеренного значения сохраняются в энергонезависимой памяти.

#include <LiquidCrystal.h>
#include <EEPROM.h> //#include <EEPROMex.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
int u,reg,i4,i20,zap,rom0,rom1,rom2,rom3,rom4,rom5,rom6,i4_minus,i20_minus,kn1,kn2,kn3,kn4;
const float u_ref = 1.0785;// измеренное опорное напряжение
float i,u_f, iz;
unsigned long w; 
 
void setup() {
  lcd.begin(16, 2);// LCD 16X2
  analogReference(INTERNAL);
  pinMode(A0,INPUT);// A0 - аналоговый вход
  pinMode(4,INPUT);pinMode(3,INPUT);pinMode(2,INPUT);
  rom0=EEPROM.read(0);if(rom0>1){EEPROM.update(0,rom0);}//+- i4
  rom1=EEPROM.read(1);if(rom1>10){EEPROM.update(1,rom1);}//10xx i4
  rom2=EEPROM.read(2);if(rom2>99){EEPROM.update(2,rom2);}//xx99 i4
  rom3=EEPROM.read(3);if(rom3>1){EEPROM.update(3,rom3);}// +- i20
  rom4=EEPROM.read(4);if(rom4>10){EEPROM.update(4,rom4);}//10xx i20
  rom5=EEPROM.read(5);if(rom5>99){EEPROM.update(5,rom5);}//xx99 i20
  rom6=EEPROM.read(6);if(rom6>2){EEPROM.update(6,rom6);}//0.00 
  i4=rom1*100+rom2;if(rom0==1){i4=i4-2*i4;}
  i20=rom4*100+rom5;if(rom3==1){i20=i20-2*i20;}
  zap=rom6;}
 
void loop() {
  if(digitalRead(4)==HIGH){reg++;delay(500);}if(reg>3){reg=0;}
  if(digitalRead(3)==HIGH&&reg==1){kn1++;if(kn1>=10){i4=i4+10;}else{i4++;}}else{kn1=0;}if(i4>1000){i4=1000;}
  if(digitalRead(2)==HIGH&&reg==1){kn2++;if(kn2>=10){i4=i4-10;}else{i4--;}}else{kn2=0;}if(i4<-1000){i4=-1000;}
  if(digitalRead(3)==HIGH&&reg==2){kn3++;if(kn3>=10){i20=i20+10;}else{i20++;}}else{kn3=0;}if(i20>1000){i20=1000;}
  if(digitalRead(2)==HIGH&&reg==2){kn4++;if(kn4>=10){i20=i20-10;}else{i20--;}}else{kn4=0;}if(i20<-1000){i20=-1000;}
  if(digitalRead(3)==HIGH&&reg==3){zap++;}if(zap>2){zap=0;}
  if(digitalRead(2)==HIGH&&reg==3){zap--;}if(zap<0){zap=2;}
  if(i4<0){i4_minus=1;} if(i20<0){i20_minus=1;}
  lcd.setCursor(0,0);
  if(reg==1){lcd.print("4 mA = ");lcd.print(i4);}
  if(reg==2){lcd.print("20 mA = ");lcd.print(i20);}
  if(reg==3){if(zap==0){lcd.print(" 0 ");}if(zap==1){lcd.print(" 0.0 ");}if(zap==2){lcd.print(" 0.00 ");}}
  if(reg>0){w=0;}
  if(reg==0){if(w==1){
  EEPROM.update(0,i4_minus);
  EEPROM.update(1,abs(i4/100));
  EEPROM.update(2,abs(i4-i4/100*100));
  EEPROM.update(3,i20_minus);
  EEPROM.update(4,abs(i20/100));
  EEPROM.update(5,abs(i20-i20/100*100));
  EEPROM.update(6,zap);}
  u = analogRead(A0); // измерение по входу А0
  u_f = (u*u_ref)/1023;
  i = u_f*20;
  lcd.setCursor(0,1);lcd.print("I = ");lcd.print(i,2);lcd.print(" mA");
  if(i<3.8){lcd.setCursor(14,1);lcd.print("LO");}
  if(i>20.2){lcd.setCursor(14,1);lcd.print("HI");}
  iz =(i20-i4)/16.0*i-(i20-i4)/16.0*4+i4;
  lcd.setCursor(0,0);lcd.print(iz,zap);lcd.setCursor(10,0);lcd.print("4-20mA");
  }
  w++;delay(300);lcd.clear();
}

Добавить комментарий

Случайные статьи

  • Преобразователи напряжения

    В связи с выключением электроэнергии возникла необходимость в других источниках питания. Я некоторое время работал с различными схемами преобразователей с 12 В АКБ в ~220 В, 50 Гц на различную мощность нагрузки, поэтому возникла возможность питать как лампы (свет в квартире), так и различную аппаратуру. Выключал автоматические пробки на счетчике, …Подробнее...
  • КЛАССИФИКАЦИЯ РАДИОИЗМЕРИТЕЛЬНЫХ ПРИБОРОВ СОГЛАСНО ГОСТ 15094-69

    КЛАССИФИКАЦИЯ РАДИОИЗМЕРИТЕЛЬНЫХ ПРИБОРОВ СОГЛАСНО ГОСТ 15094-69 Радиоэлектронные измерительные приборы (РИП) классифицируются по различным признакам (см. табл.) Классификация электронных радиоизмерительных приборов Признак классификации Разновидности измерительных приборов Выполняемые метрологические функции Эталоны, образцовые приборы, рабочие приборы Характер измерений, вид измеряемых величин, основные выполняемые функции, совокупность технических характеристик и очередность разработки Подгруппы, виды, типы …Подробнее...
  • Онлайн — калькулятор цветовой маркировки резисторов

    Онлайн — калькулятор цветовой маркировки резисторов

    Для резисторов с точностью 20 % используют маркировку с тремя полосками, для резисторов с точностью 10 % и 5 % маркировку с четырьмя полосками, для более точных резисторов с пятью или шестью полосками. Первые две полоски всегда означают первые два знака номинала. Если полосок 3 или 4, третья полоска означает …Подробнее...
  • Излучение и распространение радиоволн

    Излучение и распространение радиоволн

    Как известно, постоянный ток, проходящий по проводу создает вокруг него постоянное магнитное поле. Когда ток исчезает, то созданное им магнитное поле исчезая возвращает энергию в провод. При переменном токе вокруг провода создается переменное магнитное поле, напряженность которого меняется с частотой тока. Часть энергии магнитного поля возвращается в провод, другая часть …Подробнее...
  • Полицейская сирена на LM324

    Полицейская сирена на LM324

    Данная схема издает звук напоминающий полицейскую сирену. Схема основана на ОУ LM324 представляющий собой генератор ЗЧ. При нажатии на кнопку SA1 начнет быстро заряжаться С1, сирена начнет издавать звук. При размыкании контактов SA1  сирена будет работать до тех пор пока не разрядится через R2 конденсатор С1. Источник — http://www.eleccircuit.com/police-bicycle-siren-circuits/ скраб для …Подробнее...