| Ваш IP: 34.228.42.25 | Online(46) - гости: 20, боты: 26 | Загрузка сервера: 1.61 ::::::::::::

Измерение унифицированного токового сигнала 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();
}

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

Войти с помощью: 

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

  • Источник опорного напряжения

    Источник опорного напряжения

    На рисунке показана схема источника опорного напряжение, который может работать от двух батареек AA в течении 18 месяцев. Дрейф напряжения не более 5,5 мкВ  / ° С. Выходное напряжение источника 1,23 В при 25 ° C. Регулировка выхода опорного напряжения не более чем на 120мВ.Подробнее...
  • BA5417 стерео-усилитель 2*5Вт

    BA5417 стерео-усилитель 2*5Вт

    Усилитель на базе ВА5417 имеет выходную мощность 5 Вт на канал при 4 ом нагрузке, питание 12В (от 6 до 15В) постоянного напряжения. Усилитель на BA5417 имеет отличное качество звука и низкий коэффициент нелинейных искажений, не более 0,1% на частоте 1 кГц при Рвых=0, 5Вт. SA1 — включение режима ОЖИДАНИЕ …Подробнее...
  • Термометр на PIC16F628A (-55…+125 гр. Цельсия)

    Термометр на PIC16F628A (-55…+125 гр. Цельсия)

    На рисунке показана схема термометра выполненного на основе микроконтроллера PIC16F628A, в качестве датчика используется цифровой датчик температуры DS18B20. Индикатор термометра состоит из 4-х разрадного семисегментного индикатора. Диапазон измеряемой температуры от -55 до + 125 градусов Цельсия. Температура считывается каждые 15 секунд, время считывания можно изменить в коде.   Напряжение питания термометра 5В, …Подробнее...
  • Высокоточный стабилизатор

    Высокоточный стабилизатор

    Можно добиться суммарной нестабильности вызванной изменением нагрузки, входного напряжения и температуры менее 0,01% применив схему показанную на рисунке. R4 определяет ток через стабилитрон, ток стабилитрона определяет температурный дрейф. R2 и R3 высокоточные резисторы. Литература — Джеймс Уитсон — 500 практических схем на ИСПодробнее...
  • Медный обмоточный провод

    В табл. представлены обмоточные провода ПЭВ-1 ПЭВ-2, они одножильные с винифлексовой изоляцией(лак). ПЭВ- 1-однослойная изоляция 2-двухслойная. Провода рассчитаны на работу при температуре от -60 до 105 градусов Цельсия. Ресурс провода при макс. температуре 20000 часов.Подробнее...