Beruflich Dokumente
Kultur Dokumente
Sensores
Prcticas 1, 2, 3, 4,5 y 6
Ingeniera en Electrnica
Instrumentacin
H. Nogales Sonora
NDICE DE CONTENIDO
RESUMEN..................................................................................................................... 3
OBJETIVO..................................................................................................................... 4
INTRODUCCIN............................................................................................................ 5
MATERIAL Y EQUIPO.................................................................................................... 8
ACTIVIDADES REALIZADAS.......................................................................................... 9
Prctica #1.0.- Medicin de un Voltaje Analgico......................................................................9
Prctica #2.0.- Fuente de voltaje de 0-5v...............................................................................12
Practica #3.0.- Control de velocidad de un Motor....................................................................15
Practica #4.0.- Medicin de temperatura..................................................................17
Practica #5.0.- Medicin de distancia................................................................................... 20
Practica #6.0.- Medicin de flujo...............................................................................24
CONCLUSIONES......................................................................................................... 28
ANEXOS..................................................................................................................... 29
Pinout del Lcd............................................................................................................ 29
BIBLIOGRAFIA............................................................................................................ 30
NDICE DE IMGENES
2
Imagen 1.......7
Imagen 2...9
Imagen 3.....10
Imagen 4.....11
Imagen 5.....13
Imagen 6.....16
Imagen 7.....17
Imagen 8.....19
Imagen 9.....20
Imagen 10.......23
Imagen 11.......24
Imagen 12.......26
Imagen 13.......29
RESUMEN
3
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
5
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
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.
Imagen #3
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);
10
Serial.print(" V");
Serial.print(" --> ");
Serial.print(current);
Serial.println(" mA");
delay(500);
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.
11
#include <LiquidCrystal.h>
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);
12
newValue=sensorValue/4;
newValue=newValue+37; // compensacin por la cada del transistor
analogWrite(6,newValue);
delay(500);
}
Imagen #5
13
En 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 medicin
Como 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.
15
Imagen #6
16
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
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
17
}
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:
18
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.
19
Imagen #9
#include <LiquidCrystal.h>
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);
20
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<=0.5) // establecemos la condicin del led encendido o apagado.
{
digitalWrite(8, HIGH);
21
}
else
{
digitalWrite(8,LOW);
}
delay(1000);
}
El led va conectado al pin 8 de arduino y debe llevar una resistencia de 330 como
proteccin.
Circuito fsico:
22
Imagen #10
Fue una prctica muy divertida y sencilla, afortunadamente no hubo complicaciones para
realizarla.
23
Para esta prctica nos basamos en un video encontrado en la plataforma Youtube que nos
mostraba como utilizar el sensor de flujo YF-S201, y nos explicaba el cdigo as como las
conexiones necesarias.
El sensor de flujo cuenta con 3 cables, uno rojo que es el voltaje positivo, uno negro que
es el negativo y un amarillo que nos proporciona una seal analgica que el arduino puede leer y
utilizar a nuestro favor.
Imagen #11
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,7,6,5,4);
volatile int rpmcont;
int Calc;
void rpm()
{
rpmcont++;
}
24
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
lcd.print("Medidor de flujo");
delay(1000);
lcd.clear();
rpmcont=0;
attachInterrupt(0,rpm,FALLING);
}
void loop()
{
rpmcont=0;
sei();
delay(5000);
cli();
Calc=(rpmcont*120/350);
Serial.print(Calc,DEC);
Serial.print(" L/min\r\n");
lcd.setCursor(4,0);
lcd.print(Calc);
lcd.print("L/min");
lcd.setCursor(4,1);
lcd.print(rpmcont);
lcd.print(" rpm");
25
attachInterrupt(0,rpm,FALLING);
}
Imagen #12
El sensor de flujo va conectado al pin 2 ya que es el que permite tener contacto con las
llamadas interrupciones, bsicamente el sensor funciona basado en un efecto llamado Hall;
internamente el sensor cuenta con 1 imn en cada una de sus aspas, y al circular por l un flujo de
agua provoca que las aspas se muevan y los imanes interrumpan un campo magntico un nmero
finito de veces, lo cual crea un voltaje de salida proporcional a las revoluciones a las que se
26
mueven las aspas y de esa manera se pueden determinar los litros de agua que circulan en el
sensor.
Todo esto es basado en las interrupciones que provoca el campo magntico del sensor y
estas se cuentan por medio del arduino.
No se presentaron dificultades en esta prctica y todo sali conforme a lo esperado.
CONCLUSIONES
27
Las prcticas nos sirvieron para entender el entorno de arduino y el funcionamiento de los
sensores simples, manipulando las variables ms utilizadas como la distancia, la temperatura y el
flujo.
ANEXOS
28
Imagen #13
BIBLIOGRAFIA
29
30