| Ваш IP: 54.80.45.31 | Online(14) - гости: 6, боты: 8 | Загрузка сервера: 1.26 ::::::::::::

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

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

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

  • ПОСТОЯННЫЙ И ПЕРЕМЕННЫЙ ТОК

    ПОСТОЯННЫЙ И ПЕРЕМЕННЫЙ ТОК

    ВСЁ ДЛЯ РАДИОЛЮБИТЕЛЕЙ: http://www.dessy.ru/index.html?partne… Что такое постоянный ток. Что такое переменный ток. Источники постоянного тока. Источники переменного тока. Генератор переменного тока. Движение электронов.Подробнее...
  • Простой импульсный блок питания на 15 Вт

    Простой импульсный блок питания на 15 Вт

    БП рассчитан на нагрузку мощностью 15…20 Вт. Источник выполнен по схеме однотактного импульсного высокочастотного преобразователя. На транзисторе собран автогенератор, работающий на частоте 20…40кГц. Частота настраивается емкостью С5. Элементы VD5,VD6 и С6 образуют цепь запуска автогенератора. Во вторичной цепи после мостового выпрямителя стоит обычный линейный стабилизатор на микросхеме, что позволяет иметь …Подробнее...
  • УНЧ на TDA7264

    УНЧ на TDA7264

    Стереофонический Hi-Fi усилитель НЧ, выходной каскад которого работает в режиме АВ. Специально разработан для высококачественного звуковоспроизведения в музыкальных центрах и ТВ приемниках. Напряжение питания ±5…22,5В Максимально потребляемый ток 4,5А Ток покоя при Uп=±20В Rн=8Ом — 80мА Выходная мощность при Uп=±20В Rн=8Ом КНИ 10% — 25Вт Выходная мощность при Uп=±16В Rн=4Ом …Подробнее...
  • Импульсный блок питания 180Вт

    Импульсный блок питания 180Вт

    Мощность блока питания — около 180 Вт, выходное напряжение 2х25 В при токе нагрузки 3,5 А. Размах пульсации при токе нагрузки 3,5 А не превышает 10 % для частоты преобразования 100 Гц и 2 % для частоты 27 кГц. Выходное сопротивление не превышает 0,6 Ом. Габариты блока — 170х80х35 мм; …Подробнее...
  • Стереофонический УКВ приемник

    Характеристики: Диапазон воспроизводимых частот 88…108 МГц Реальная чувствительность 3 мкВ Выходная мощность УНЧ 2*2Вт Диапазон воспроизводимых частот 40…16000Гц Напряжение питания 3…9В Приемник построен на 2-х микросхемах CXA1238S и TEA2025B. CXA1238S содержит универсальный АМ\ЧМ радиоприемный тракт, выбор режима работы определяет лог. уровень на 15-ом выводе микросхемы. В состав ЧМ входит — …Подробнее...