Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Sistema de cisternas en Labview, Guías, Proyectos, Investigaciones de Medición Electrónica e Instrumentación

En el reporte se menciona el funcionamiento del proyecto que consiste en un sistema de cisterna y tinaco donde se implementa la automatizacion en base al software LabView y Arduino.

Tipo: Guías, Proyectos, Investigaciones

2020/2021

Subido el 23/02/2023

davidacunaruiz
davidacunaruiz 🇲🇽

1 documento

1 / 21

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
INSTRUMENTACIÓN VIRTUAL
Ronin Rosas
Ramírez
Y
David Acuña
Ruiz
UNIVERSIDAD TECNOLÓGICA DE
NAYARIT
INGENIERÍA EN MECATRÓNICA
GRUPO: IMT-71
29 DE NOVIEMBRE DEL 2022
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Vista previa parcial del texto

¡Descarga Sistema de cisternas en Labview y más Guías, Proyectos, Investigaciones en PDF de Medición Electrónica e Instrumentación solo en Docsity!

INSTRUMENTACIÓN VIRTUAL

Ronin Rosas Ramírez Y David Acuña Ruiz

UNIVERSIDAD TECNOLÓGICA DE

NAYARIT

INGENIERÍA EN MECATRÓNICA

GRUPO: IMT-

29 DE NOVIEMBRE DEL 2022

INDICE

La computadora, hardware plug-in y LabVIEW es lo que se necesita para realizar

un instrumento virtual completo, ofreciendo así una alternativa de mayor flexibilidad

a los instrumentos estándares de laboratorio, pues al estar basado en software será

cada usuario y no el fabricante del instrumento el que define la funcionalidad de este y si se necesita cambiar algo simplemente se modifica el programa.

MATERIALES

 Sensor de flujo  Sensor Hx  Sensor ultrasónico HC-SR  Sensor Lm35 (temperatura)  Bomba de 12V, de 120L/h  Manguera de nivel de ¼  Tubería PVC de ½ pulgada  Codos y coples para tubos de ½ pulgada  Cautín  Madera de 60cm/40cm  2 maderas de 20cm/20cm  4 maderas de 20cm/10cm  2 cubetas de mínimo 4 litros  Protoboard o placa para soldar  Pasta para soldadura  Pinzas de corte  Pinzas de punta  Cemento para PVC  Arduino UNO  Software LabVIEW  Termofilt

Figura 2 - Logo de Labview

Figura 1 - Logo de Arduino

 Fuente de voltaje conmutadas de 12V y 5V  Resistencia de 10k, 20k, 330.  Encendedor  Desarmador de punta  Pijas de ½ pulgada  Taladro y broca guía  Cable para conexiones y cable de calibre 12  4N  2 OPAMP  IRF404S  Dos cubetas pequeñas  Taladro  Pijas de madera  Regla  Teflón

DESARROLLO

Sensor de temperatura LM

Para la elaboración del proyecto se empezó con la programación en LabVIEW para esto se realizo una serie de pruebas de los sensores para el cual este nos ayuda en obtener la programación de la manera mas limpia y así tener una programación más funcional y segura.

Figura 3 - Programación del sensor de temperatura

El LM35 es un circuito electrónico sensor que puede medir temperatura. Su salida

es analógica, es decir, te proporciona un voltaje proporcional a la temperatura. El sensor tiene un rango desde −55°C a 150°C. Su popularidad se debe a la facilidad

con la que se puede medir la temperatura. Incluso no es necesario de un

microprocesador o microcontrolador para medir la temperatura. Dado que el sensor

Labview, solo se realiza una multiplicación x10, para conseguir convertir el voltaje en C°, esto se hace con una configuración en los opamp donde el voltaje se ve multiplicado por la división de resistencias, además se agregó un termómetro para observar como la temperatura se ve afectada de manera más representativa.

Figura 5 - Diagrama de conexión del LM

𝑉𝑜 =

−𝑅𝑓 𝑅𝑖

∗ 𝑉𝑖

Para la programación en LabView se utilizó LINX para lograr la comunicación con arduino, se comenzó creando una estructura o ciclo While con el cual se repetirá la programación indefinidamente hasta que sea presionado el botón Stop; como el sensor de temperatura mide 10mV por cada grado C° se identificó como una entrada analógica, lo cual requiere una lectura analógica en el pin A5 del arduino, en la programación para interpretar los datos del sensor, el resultado medido se multiplica nuevamente por 10 para obtener los grados C°.

Sensor Ultrasónico HC-SR

El sensor HC-SR04 es un sensor de distancia de bajo costo que utiliza ultrasonido

para determinar la distancia de un objeto en un rango de 2 a 450 cm. Destaca por

su pequeño tamaño, bajo consumo energético, buena precisión y excelente precio.

El sensor HC-SR04 es el más utilizado dentro de los sensores de tipo ultrasonido,

principalmente por la cantidad de información y proyectos disponibles en la web. De

igual forma es el más empleado en proyectos de robótica como robots laberinto o sumo, y en proyectos de automatización como sistemas de medición de nivel o

distancia.

El sensor HC-SR04 posee dos transductores: un emisor y un receptor

piezoeléctricos, además de la electrónica necesaria para su operación. El

funcionamiento del sensor es el siguiente: el emisor piezoeléctrico emite 8 pulsos

de ultrasonido(40KHz) luego de recibir la orden en el pin TRIG, las ondas de sonido

viajan en el aire y rebotan al encontrar un objeto, el sonido de rebote es detectado

por el receptor piezoeléctrico, luego el pin ECHO cambia a Alto (5V) por un tiempo

igual al que demoró la onda desde que fue emitida hasta que fue detectada, el

tiempo del pulso ECO es medido por el microcontrolador y así se puede calcular la

distancia al objeto. El funcionamiento del sensor no se ve afectado por la luz solar o material de color negro (aunque los materiales blandos acústicamente como

tela o lana pueden llegar a ser difíciles de detectar).

La distancia se puede calcular utilizando la siguiente formula:

Distancia (m) = {(Tiempo del pulso ECO) * (Velocidad del sonido=340m/s)}/2.

 Voltaje de Operación: 5V DC  Corriente de reposo: < 2mA  Corriente de trabajo: 15mA  Rango de medición: 2cm a 450cm  Precisión: +- 3mm  Ángulo de apertura: 15°  Frecuencia de ultrasonido: 40KHz  Duración mínima del pulso de disparo TRIG (nivel TTL): 10 μS  Duración del pulso ECO de salida (nivel TTL): 100-25000 μS  Dimensiones: 452015 mm  Tiempo mínimo de espera entre una medida y el inicio de otra 20ms (recomendable 50ms)  VCC (+5V DC)  TRIG (Disparo del ultrasonido)  ECHO (Recepción del ultrasonido)  GND (Tierra: 0V)

El sensor ultrasónico no requiere ningún circuito, así que solo revisamos el datasheet para comprender su funcionamiento, este sensor se implementa para calcular el volumen dentro del recipiente con agua, por lo que es necesario calcular el área de la base del recipiente a utilizar y multiplicarlo por la altura que se obtiene al restar lo medido por el sensor ultrasónico a la altura total del recipiente, el recipiente que se utiliza es un recipiente redondo de 8.75cm de radio.

𝐴 = 𝜋 ∗ 𝑅^2 𝐴 = 𝜋(8.75)^2 = 240.53𝑐𝑚^2

La altura se calcula con la siguiente formula:

ℎ = 𝐻𝑠 − 𝐻𝑚𝑎𝑥 = 𝑥 − 16.09𝑐𝑚

Mientras que el volumen utiliza la siguiente:

desplazamiento de un pistón magnético que indica el aumento o disminución del flujo de líquido, accionando el contacto de un interruptor de láminas (Reed switch). El pistón es controlado por un resorte y regresa a la posición inicial cuando no hay fluido, incluso si hay presión en la tubería.

Este sensor fue uno de los más complicados de implementar, se encarga de medir el flujo de agua que pasa a través del tubo PVC cuando la válvula se abre, mide el flujo cuando el agua comienza a fluir hacia el otro recipiente donde se encuentra el sensor LM35. Este sensor de flujo también es digital, por lo tanto no requiere de circuito para conectarlo a arduino, según el datasheet de este sensor, usa la frecuencia para determinarla cantidad de litros que pasa cada hora, 16Hz hacen 120L/h.

Su conexión consta de un solo cable de datos, el de color amarillo, uno rojo para VCC y el negro para GND, como funciona con frecuencia, significa que manda pulsos de 4.99V y 0V al arduino, para su programación dentro del software se utiliza un Analog Read para leer los pulsos del mismo sensor, y se comienza a realizar un conteo que incrementa con cada pulso en un segundo, ya que la frecuencia es igual a la cantidad de pulsos entre el tiempo transcurrido, 16 pulsos entre un segundo da como resultado 16Hz.

Para obtener el Caudal se realiza una multiplicación dada por el datasheet que depende del diámetro del tubo, en este caso se utilizó ½ pulgada, por lo tanto se multiplica por la constante de 7.5.

𝐶 = 7.5 ∗ 16𝐻𝑧 = 120𝐿/ℎ

Estos cálculos también se realizan dentro de la programación en el software, para completar la programación fue necesario realizar investigaciones para obtener un mejor resultado, la programación finalizo de la siguiente forma:

Figura 8 - Programación del sensor de flujo

Se utiliza un Select que se encara de ir incrementando el conteo con cada pulso recibido, como se puede observar al final se divide entre 60, esto es para convertir los L/h en L/min para obtener un resultado más preciso y a escala, ya que el prototipo es pequeño.

Sensor de Peso y HX-

El módulo HX711 es un transmisor entre las celdas de carga y un microcontrolador

como Arduino/PIC/ESP, permitiendo leer el peso en la celda de manera sencilla. Es

compatible con las celdas de carga de 1kg, 5kg, 20kg y 50kg. Utilizado en sistemas

de medición automatizada, procesos industriales, industria médica.

El chip HX711 posee internamente la electrónica de acondicionamiento y conversión A/D, permitiendo la lectura del puente Wheatstone formado por la celda de carga y también un conversor ADC de 24 bits. Se comunica con el microcontrolador por medio de una interfaz serial de 2 pines (Clook y Data) similar al I2C. Para lograr la conexión se utiliza un módulo Hx-711 que básicamente se encarga de convertir la señal analógica del sensor de peso en señal digital.

Las celdas de carga están formadas por galgas extensiométricas en configuración

de puente Wheatstone. Para conectar una celda de carga al módulo HX711 son

necesarios 4 cables, los colores utilizados habitualmente son Rojo, Negro, Blanco y

Verde. Cada color corresponde a una señal como se muestra a continuación:

 Rojo: Voltaje de excitación +, E+, VCC  Negro: Voltaje de excitación -, E-, GND  Verde: Amplificador -, Señal -, A-  Blanco: Amplificador +, Señal +, A+

Figura 9 - Puente de Wheatstone

Los cables del arduino van conectados en el otro extremo, donde DAT y CLK son las señales del sensor.

Con ayuda de esta información se puede generar la programación en LabVIEW.

Después de calibrar el sensor o de conocer el factor de calibración se prosigue con otro código de Arduino IDE para poder leerlo en el software de LabView. Se debe tener en cuenta que se requiere otro arduino para este sensor, ya que si se le sube la programación de LabView el código se borrara.

Para la programación en Labview es necesario realizarlo en otro VI para evitar que

#include "HX711.h" #define DOUT 3 #define CLK 2 HX711 scale; float calibration_factor = - 300000; //-7050 worked for my 440lb max scale setup void setup() { Serial.begin(9600); Serial.println("HX711 calibration sketch"); Serial.println("Remove all weight from scale"); Serial.println("After readings begin, place known weight on scale"); Serial.println("Press + or a to increase calibration factor"); Serial.println("Press - or z to decrease calibration factor"); scale.begin(DOUT, CLK); scale.set_scale(); scale.tare(); //Reset the scale to 0 long zero_factor = scale.read_average(); //Get a baseline reading Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects. Serial.println(zero_factor); } void loop() { scale.set_scale(calibration_factor); //Adjust to this calibration factor Serial.print("Reading: "); Serial.print(scale.get_units(), 1); Serial.print(" kg"); //Change this to kg and re-adjust the calibration factor if you follow SI units like a sane person Serial.print(" calibration_factor: "); Serial.print(calibration_factor); Serial.println(); if(Serial.available()) { char temp = Serial.read(); if(temp == '+' || temp == 'a') calibration_factor += 10; else if(temp == '-' || temp == 'z') calibration_factor - = 10; } }

#include <HX711.h>

#define calibration_factor - 280000.0 //This value is obtained using the SparkFun_HX711_Calibration sketch

#define DOUT 3 #define CLK 2

HX711 scale;

void setup() { Serial.begin(9600); Serial.println("HX711 scale demo");

scale.begin(DOUT, CLK); scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0 } void loop() { Serial.print(scale.get_units(), 1); //scale.get_units() returns a float Serial.print(" kg "); //You can change this to kg but you'll need to refactor the calibration_factor Serial.println(); }

el programa se sature, por lo que es necesario utilizar variables globales para leer los datos adquiridos en el otro VI donde se encuentran los demás sensores.

Figura 11 - Programación del sensor de peso

Para esta programación se utiliza un bloque VISA para leer los datos que mande el arduino y como el dato es un string se debe convertir a valor numérico para realizar operaciones con él, con el propósito de calcular el volumen de la cisterna.

Esta programación no se debe de cargar al arduino porque el otro código será borrado, esta programación solo sirve para leer los datos que proporciona el arduino.

Figura 12 - Lectura de variables Globales

Esta es la programación que se hizo en el VI donde se encuentran los demás sensores, se utiliza la fórmula de la densidad para calcular el volumen del tanque.

997𝑘𝑔/𝑚^3

Como el resultado es en metros cúbicos, se debe realizar una multiplicación para obtener el resultado en litros, tomando en cuenta que 1000 litros forman un metro

Figura 14 - Programación de sensor ultrasónico

Resistencia

Para realizar la conexión de la resistencia se creó un drive similar al de la bomba, solo que este debe ser capaz de cerrar el circuito de la resistencia que funciona con corriente alterna, en la siguiente imagen se muestra el diagrama de conexión:

Para la parte de la programación se utiliza un bloque de PWM, este bloque solo acepta valores de 1 a 0, donde 0 significa estar apagado, para controlarlo se utiliza un Dial en el panel frontal de 0 a 1.

Figura 15 - Diagrama de conexión de Resistencia

Figura 16 - Programación de Resistencia

Programación y Maqueta Completa

Después de realizar la programación de cada componente, se unieron en un solo VI o archivo, y además se agregaron animaciones a todos los componentes para que se vean de manera similar a lo que se tiene en físico.

Figura 17 - Panel frontal

Figura 20 - Programación completa parte 3

Para la parte física se utilizó la madera de mayor tamaño para la base, y lo demás para elevar una de las cubetas a 22cm de altura, el resultado final fue el siguiente:

Figura 21 - Conexión del cableado

Figura 22 - Conexión de dos Arduino para el sensor de peso