miércoles, 9 de diciembre de 2020

 SENSOR DE PRESIÓN SKU237545 0-12 Bar. Salida analógica arduino

La presión es un parámetro muy importante en nuestro sector de la Refrigeración, al igual que la temperatura y la humedad. En el curso pasado conseguimos medir la temperatura y la humedad en un circuito frigorífico, para este curso nos propusimos medir la presión y ya podemos presentar un avance importante, a falta de probarlo en un circuito real.

La presión interviene en el proceso de ajuste y control de la instalación, en función de este parámetro, podemos poner en marcha ventiladores de condensación para bajar la presión de alta, hacer que el compresor pare antes de entrar en vacío o establecer una secuencia de variación de la producción frigorífica, en función de la demanda en cada momento, consiguiendo que la instalación funcione de manera fiable y automática, en las mejores condiciones de eficiencia energética.

Pasamos a describir nuestro proyecto en Arduino, las características de este sensor, el esquema eléctrico de montaje y la programación en IDE de Arduino.

1.- Características del sensor.

Transductor de presión de alta calidad Sensor de combustible de aceite para Gas-agua-aire

Especificaciones del artículo

Nombre de la marca: TMOEC

Tipo: Sensor de vibración

Número de modelo: SKU237545

Material: Metal

Uso: Pressure Transducer Sensor

Teoría: Pressure Transducer Sensor

Salida: Pressure Transducer Senso

Voltaje de trabajo: 5VDC

Voltaje de salida: 0,5-4,5 VDC

Material DEL Sensor: aleación de acero al carbono

Corriente de funcionamiento: ≤ 10 mA

Rango de presión de funcionamiento: 0-1,2 MPa

La mayor presión: 2,4 MPa

Longitud del Cable: 19 cm

Destruir la presión: 3,0 MPa

¿Temperatura de trabajo? Rango: 0-85

Rango de temperatura de almacenamiento: 0-100

Error de medición: ± 1,5% FSO

Rango de temperatura de Error: ± 3,5% FSO

Tiempo de respuesta: ≤ 2,0 ms

Vida útil: 500.000 Uds.

Aplicación: medición de líquido de gas no corrosivo

Características:

Fácil extracción, conexión de acero al carbono más firme.

El acero inoxidable es duradero, sellado a prueba de agua, chips importados.


Cableado:       rojo + / negro - / amarillo salida

Tensión de alimentación:  5 Voltios DC (Rojo y Negro)

Tensión de salida: 0,5 Voltios DC (Amarillo y Negro) a presión atmosférica (manométrica 0                                                                                                                                         bar)

Tensión de salida:   3 Voltios DC (Amarillo y Negro) a presión de 6 bares manométrica (procedente de un compresor)

Tensión de salida: 4,5 Voltios DC (Amarillo y Negro) a presión de 12 bares

Programación en Arduino:

Las entradas analógicas en Arduino son de 10 Bit

La salida (cable amarillo) se conecta a la entrada A0 del Arduino

Positivo (cable rojo) a +5V

Negativo (cable negro) a GND

Tendría que ser 0 para 0 Voltios / 1023 para 5 voltios

Como da 0,5 voltios para 0 bar y 4,5 voltios para 12 bar, descartamos 0,5 por abajo y 0,5 por arriba con lo cual nos quedarían:

    5-0 = 5 equivale a 1023 pasos

    4,5-0,5 = 4 equivale a 818,4 pasos

Por tanto tiene una precisión de 12 bares/818 = 0,0146 bares


2.- Esquema eléctrico




3.- Código de programación en IDE de Arduino.



#include <Wire.h>  //allows conmunication over i2c devices

#include <LiquidCrystal_I2C.h>  //allows interfacing with LCD screens

LiquidCrystal_I2C lcd (0x3f,2,1,0,4,5,6,7);   //Creación del objeto lcd

const int pressureInput = A0; //select the analog input pin for the pressure transducer

const int pressureZero = 102.4;  //analog reading of pressure transducer at 0 bar

const int pressureMax = 921.6;  //analog reading of pressure transducer at 12 bar

const int pressuretransducermaxBar = 12;  //bar value of transducer being used

const int baudRate = 9600;  //constant integer to set the baud rate for serial monitor

const int sensorreadDelay = 1000;  //constant integer to set the sensor read delay in milliseconds

float pressureValue = 0;  //variable to store the value coming from the pressure transducer

void setup()  //setup routine, runs once when system turned on or reset

{

  Serial.begin(baudRate);  //initializes serial conmunication at set baud rate bits per second

  lcd.setBacklightPin(3,POSITIVE);  //Puerto P3 del circuito integrado PCF8574 del adaptador I2C como positivo

  lcd.setBacklight(HIGH);         //Iniciamos el fondo retroiluminado, habilita iluminación posterior del LCD

  lcd.begin(16,2);  //initializes the LCD screen

  lcd.clear();             //Limpiamos la lcd

}

void loop()  //loop routine runs over and over again forever

{

  pressureValue = analogRead(pressureInput);  //reads value from input pin and assigns to variable

  pressureValue = ((pressureValue-pressureZero)*pressuretransducermaxBar)/(pressureMax-pressureZero);  //conversion equation to convert analog reading to Bar

  Serial.print(pressureValue, 1);  //prints value from previous line to serial

  Serial.println("Bar");  //prints label to serial

  lcd.setCursor(0,0);  //sets cursor to column 0, row 0

  lcd.print("Pressure:");  //prints label

  lcd.print(pressureValue, 1);  //prints pressure value to lcd screen, 1 digit on float

  lcd.print("Bar");  //prints label after value

  lcd.print(" ");  //to clear the display after large values or negatives

  delay(sensorreadDelay);  //delay in milliseconds between read values

}


No hay comentarios:

Publicar un comentario