Reporte U2 Instrumentacion

37
Instituto Tecnológico de Nogales “Sensores” Prácticas 1, 2, 3, 4,5 y 6 Nombre: Erick Alberto Méndez Mendoza Número de Control: 12340152 Ingeniería en Electrónica Instrumentación 1

description

Se abordan distintas practicas para el manejo de algunas variables tales como temperatura, distancia, flujo, velocidad de un motor, etc.

Transcript of Reporte U2 Instrumentacion

Instituto Tecnolgico de Nogales

Sensores

Prcticas 1, 2, 3, 4,5 y 6

Nombre: Erick Alberto Mndez Mendoza

Nmero de Control: 12340152

Ingeniera en Electrnica

Instrumentacin

Maestro: M.C. Eduardo Snchez Arellano.

H. Nogales Sonora Marzo del 2015NDICE DE CONTENIDO

RESUMEN3OBJETIVO4INTRODUCCIN5MATERIAL Y EQUIPO8ACTIVIDADES REALIZADAS9Prctica #1.0.- Medicin de un Voltaje Analgico.9Prctica #2.0.- Fuente de voltaje de 0-5v.12Practica #3.0.- Control de velocidad de un Motor.15Practica #4.0.- Medicin de temperatura.17Practica #5.0.- Medicin de distancia.20Practica #6.0.- Medicin de flujo.24CONCLUSIONES28ANEXOS29Pinout del Lcd29BIBLIOGRAFIA30

NDICE DE IMGENES

Imagen 1.......7Imagen 2...9Imagen 3.....10Imagen 4.....11Imagen 5.....13Imagen 6.....16Imagen 7.....17Imagen 8.....19Imagen 9.....20Imagen 10.......23Imagen 11.......24Imagen 12.......26Imagen 13.......29

RESUMEN

La materia de Instrumentacin incluye una amplia gama de aplicaciones, debido a que nos permite el manejo de diferentes sensores para la toma de decisiones y adquisicin de datos.En este reporte se presentan 6 prcticas, que van desde lo ms sencillo hacia actividades con mayor complejidad pero fciles de hacer apoyndonos de arduino como tarjeta de adquisicin de datos.Comenzando por lo bsico en la prctica #1 la cual consista en la medicin de un voltaje analgico, previo a esto investigamos como crear una fuente de corriente variable para que a travs de ella pudiramos obtener un voltaje al conectar una resistencia y a su vez medir ese voltaje con arduino.En la prctica #2 creamos una fuente de voltaje de 0 a 5v, utilizando las instrucciones Analog read y Analog write de arduino y tambin conectamos un lcd para mostrar el voltaje disponible; acoplamos una resistencia y un capacitor para transformar la seal pwm que sale de arduino a un voltaje directo y un arreglo llamado seguidor emisor para obtener corriente de otra fuente y no quemar los puertos de arduino por una sobrecarga.Siguiendo con la prctica #3 encontramos que por medio de arduino y su monitor serie es muy sencillo controlar la velocidad de un ventilador (motor) regulando el ancho de pulso de una seal, utilizando un mosfet como interruptor de alto rendimiento.La prctica #4 se trataba de medir la temperatura ambiente por medio del sensor LM35 y mostrarla en el lcd.La prctica #5 consista en medir la distancia de un objeto por medio de un sensor ultrasnico (HR-SR04) y mostrar el resultado en un lcd, adicionalmente exista una condicin que se explicara ms adelante.Finalmente pero no menos importante con la prctica #6 se pretenda medir el flujo de un lquido y mostrar las revoluciones as como los litros por minuto en el lcd.

OBJETIVO

Medir y monitorear diversos tipos de variables como lo son temperatura, distancia, flujo y voltaje, as como modificar el ancho de pulso de una seal cuadrada para controlar la velocidad de un motor utilizando arduino.

INTRODUCCIN

La prctica fue realizada en el Instituto Tecnolgico de Nogales.Arduinoes una plataforma dehardware libre, basada en unaplacacon unmicrocontroladory unentorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. Elhardwareconsiste en una placa con un microcontroladorAtmel AVRy puertos deentrada/salida.Los microcontroladores ms usados son elAtmega168,Atmega328,Atmega1280, yAtmega8por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa ellenguaje de programacin Processing/Wiring y elcargador de arranqueque es ejecutado en la placa. Arduino puede tomar informacin del entorno a travs de sus entradas analgicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador.Arduino UNOes la versin mejorada de su predecesorDuemilanove.Incluye funcin de autoreset, proteccin de sobrecargas, conector USB para programarlo, totalmente montado con componentes miniatura SMD (salvo el microcontrolador, para poder cambiarlo facilmente) y nuevobootloader OptiBoot a 155kbps.La placa se entrega completamenteensamblada y probadacon un microcontrolador AVRATmega328con un cristal de cuarzo de 16Mhz. El microcontrolador se entrega con un bootloader que permite su programacin sin necesidad de ningn tipo de programado externo.Se entrega con el nuevo chip Atmega328 de AVR con 32 KB de memoria de programa en lugar de 16 KB de la anterior versin, RAM de 2KB (antes 1KB) y EEPROM de 1 KB (antes 512 bytes).La carga de los programas tambin es ms rpida ya que el bootloader fue actualizado a una velocidad de 115000 baudios. Imagen #1

Las prcticas son un factor importante y bsico para entender el funcionamiento de los sensores y de arduino como controlador de estos, en busca de adquirir aptitudes para su amplia manipulacin.Afortunadamente no se presento ninguna complicacin al realizar las prcticas.

MATERIAL Y EQUIPO

1 protoboard.1 Arduino UNO o Mega.1 potencimetro de 10k.1 potencimetro de 200.1 resistencia de 270, 1 de 4.7 k.1 capacitor de 10F.1 Regulador de voltaje LM317.1 Sensor ultrasnico HC-SR04.1 Lcd 16x2.1 Mosfet IRF640.1 Transistor 2N2222A.1 Fuente de voltaje.1 ventilador de 12v.1 osciloscopio digital.1 par de puntas Banana-Caimn.1 par de puntas BNC-Caimn.1 Sensor de temperatura LM35.1 Sensor de flujo YF-S201.

ACTIVIDADES REALIZADAS

Prctica #1.0.- Medicin de un Voltaje Analgico.

Primero que nada debemos crear una fuente de corriente variable utilizando el regulador LM317 en una configuracin especial que se muestra a continuacin:

Imagen #2

La resistencia R1 debe ser sustituida por un potencimetro de 200 para lograr variar la corriente, y en la salida del circuito anterior se conecta una resistencia de 270 en donde se medir el voltaje por medio del pin A0 de la placa y se mostrar por medio del monitor serie del software.

El cdigo lo podemos encontrar en el software de arduino:

Imagen #3

El cdigo con algunas modificaciones se muestra a continuacin:

void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600);}

// the loop routine runs over and over again forever:void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V): float voltage = sensorValue * (5.0 / 1023.0); float current=voltage*1000/270; // Calculo de la corriente // print out the value you read: Serial.print(voltage); Serial.print(" V"); Serial.print(" --> "); Serial.print(current); Serial.println(" mA"); delay(500);

Este es el circuito que se debe armar fsicamente:

Imagen #4

Una vez cargado el cdigo en la placa y conectado el circuito tal como se muestra en la imagen, se debe abrir el monitor serie para ver el voltaje que hay presente en la resistencia as como la corriente que circula a travs de ella, espordicamente se puede variar el potencimetro para ver como la cada de voltaje y la corriente cambia con respecto a la variacin del potencimetro.Prctica #2.0.- Fuente de voltaje de 0-5v.

En esta prctica se conecta un potencimetro de 10k al puerto analgico 0 para monitorear la cada de voltaje que hay presente en l, mostrarla en el lcd y a su vez hacer que arduino escriba ese voltaje por medio de una seal cuadrada en el pin 6.Arduino tiene la capacidad de emitir una seal cuadrada y variar su ciclo de trabajo provocando una cada de voltaje distinta, segn el ciclo presente.Existe un acoplamiento de una resistencia y un capacitor en la salida (pin 6) de la placa para convertir la onda cuadrada en un nivel de voltaje de corriente directa y despus enviarlo a un amplificador operacional para proporcionar una alta impedancia en el circuito (opcional), despus de este paso se conecta un transistor en configuracin emisor seguidor para mantener el voltaje suministrado por el arduino y tomar la corriente de otra fuente de voltaje que se conectar en el colector del transistor.Por medio de programacin se debe compensar la cada de 0.7v que son los que consume la unin del transistor para ponerse en conduccin; la salida se medir entre el emisor y tierra.

El cdigo sera el siguiente:

#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() { Serial.begin(9600);}

void loop() { int sensorValue = analogRead(A0); float voltage = sensorValue * (5.0 / 1023.0); int newValue; lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("El Voltaje es: "); lcd.print(voltage); lcd.print("V"); lcd.setCursor(5, 1); newValue=sensorValue/4; newValue=newValue+37; // compensacin por la cada del transistor analogWrite(6,newValue); delay(500);}

Este es el circuito que se debe armar fsicamente:

Imagen #5En la nota que dice +12v indica el lugar donde se debe conectar la fuente adicional, no s debe olvidar conectar las tierras en un mismo sitio para evitar problemas de medicinComo se puede notar en el circuito no incluimos el amplificador operacional debido a que se este se sobre-calent prcticamente, sin embargo con la resistencia y el capacitor es suficiente para cumplir con el objetivo, el nico cambio fue que del arreglo RC se conecto directo a la base del transistor.Prcticamente observamos la modulacin de ancho de pulso que genera el arduino en la seal cuadrada y como variaba la salida del voltaje en el emisor del transistor.Todo sali tal como se esperaba.

Practica #3.0.- Control de velocidad de un Motor.

En esta ocasin utilizamos un cdigo proporcionado por el facilitador, dicho cdigo permita ingresar un valor entre 0 y 255 en el monitor serie del software de arduino para regular el ancho de pulso de una onda cuadrada la cual a su vez controlaba la velocidad de un ventilador.Nos apoyamos de un mosfet para utilizarlo como switch ya que mientras exista un pulso en su gate se pondr en conduccin pero en ausencia de este se convertir en un circuito abierto; esto es ideal para controlar la velocidad debido a que es como si estuviramos prendiendo y apagando el ventilador.

El cdigo para esta prctica es el siguiente:

const int ledPin=3;void setup() {Serial.begin(9600);pinMode(ledPin,OUTPUT);}void loop() { while (Serial.available()>0) { //pone el monitor serie disponible para recibir datos int velocidad=Serial.parseInt(); // el dato introducido en el monitor lo toma la variable "velocidad" float Porcentaje=(velocidad*100)/255; // conversin del valor en "pasos" a porcentaje analogWrite(ledPin,velocidad); // se escribe la variable "velocidad" en el pin 3 (va conectado a "gate" del mosfet) Serial.print(velocidad); Serial.print(" --> "); Serial.print(Porcentaje); Serial.println("%"); }}El circuito fsicamente sera el siguiente:

Imagen #6

Una vez conectado el circuito y cargado el programa en la placa se puede monitorear el comportamiento del ventilador, ya que al introducir un valor entre 0 y 255 el monitor serie nos dir el porcentaje al que est trabajando el ventilador.En esta prctica recurrimos al osciloscopio para observar el ciclo de trabajo de la seal enviada por arduino y verificar que los valores esperados coincidieran con los prcticos, sin ninguna complicacin, as fue.

Practica #4.0.- Medicin de temperatura.

Para esta prctica nos apoyamos del sensor LM35 por su fcil manejo, dicho sensor nos proporciona un voltaje de 10mV por cada grado centgrado por lo que es muy sencillo medir ese voltaje y con programacin convertirlo a temperatura para posteriormente mostrarla en un lcd.La configuracin de los pines del sensor y algunas especificaciones se muestran a continuacin:

Imagen #7

El cdigo que nos permite realizar esta actividad es el siguiente:

#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { // put your setup code here, to run once: Serial.begin(9600);}void loop() { int analog_pin = 0; float temperatura; temperatura = analogRead(analog_pin); temperatura = 5*temperatura*100/1023; // obtenemos la temperatura en grados centgrados Serial.print(temperatura); Serial.println(" C"); // mostramos la temperatura en monitor serie lcd.begin(16,2); lcd.print("Temperatura:"); // mostramos la temperatura en el lcd. lcd.setCursor(0,1); lcd.print(temperatura); lcd.print(" Grados C"); delay(500);}

Circuito fsico:

Imagen #8

No hubo ningn inconveniente al realizar esta prctica, cabe mencionar que adems de ver la temperatura en el lcd tambin se muestra en el monitor serie, solo es cuestin de habilitarlo.

Practica #5.0.- Medicin de distancia.

En esta prctica utilizamos el sensor ultrasnico HC-SR04 para medir distancia y mostrarla en un lcd; exista una condicin en esta actividad, la cual consista en que si la distancia a la que se encontrara algn objeto estaba en el rango de 10 a 50cm encendera un led y si se estaba fuera de ese rango estara apagado.

El pinout del sensor es el siguiente:

Imagen #9

El cdigo utilizado fue el siguiente:

#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);const int trigger=10;const int echo=13;float distance;

void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(8, OUTPUT); pinMode(trigger,OUTPUT); pinMode(echo,INPUT); lcd.begin(16,2);}void loop() { //Inicializamos el sensor digitalWrite(trigger,LOW); delayMicroseconds(10);// Comenzamos las mediciones// Enviamos una seal activando la salida trigger durante 10 microsegundos digitalWrite(trigger,HIGH); delayMicroseconds(10); digitalWrite(trigger,LOW);distance=pulseIn(echo,HIGH); // Medimos el ancho del pulso cuando la lectura del pin sea //HIGH medira el tiempo que transcurre hasta que sea LOW distance=distance*0.0001657; // Adquirimos los datos y convertimos la medida a metros Serial.print(distance); Serial.println(" Metros"); // Enviamos los datos medidos a travs del //puerto serie y al display LCD lcd.begin(16,2); lcd.print("La distancia es:"); lcd.setCursor(0, 1); lcd.print(distance); lcd.print(" metros"); if(distance>=0.1 and distance