Академический Документы
Профессиональный Документы
Культура Документы
Levitador
1 Objetivos
1.1 Objetivo general
Construir un circuito el cual sea capaz de controlar un nivel de agua mediante el uso de un
sensor infrarrojo.
2 Marco teórico
2.1 Sensor infrarrojo
Los sensores infrarrojos detectan la radiación emitida por los materiales calientes y la transforman
en una señal eléctrica. [Proxitron.com, Infrarrojos]
2.1.1 Infrarrojos
Los diodos IRLED (Infrared Light Emitting Diode) se diferencian de los leds comunes ya que el
funcionamiento esta dado en base a la emisión de rayos infrarrojos, el color del encapsulado es
diferente por lo general son de un color azul o semi morado y tienen un diámetro de 5mm la
mayoría.
2.1.2 Fototransistor
Fotodetector cuya función es parecida a la de un transistor, sin embargo este solo pose dos patas
las cuales son un emisor y un colector. El fototransistor reacciona con la luz visible y también con
los rayos infrarrojos que son invisibles. Para distinguirlo del LED su cápsula es transparente .
Imagen 2 Representación esquemática y fisca de un fototransistor
Los micrcontroladores cuando usan todas estas partes en conjunto pueden ser utilizados para
cualquier tipo de aplicación electrónica que se quiera realizar, los microcontroladores además
son muy utilizados hoy en día y se encuentran presentes en casi todos los aparatos que
utilizamos, desde electrodomésticos, sistema de comunicación, investigaciones, etc.
3 Desarrollo
En el desarrollo de nuestro sistema de medición de volumen de agua se baso principalmente en
hacer un algoritmo con ayuda de la plataforma MicroC el cual se basa en programación de alto
nivel en C++.
20 cm
20 cm
20 cm
1.1 Representación del recipiente construido
El material con el que fue hecho el recipiente es cristal de 6cm de grosor, esto se hizo ya que la
presión que puede que genera el agua dentro del recipiente puede romperlo, un material no tan
resistente como plástico se puede fracturar o se pueden presentar fugas de agua, el único
inconveniente de la elección del material es que el peso fue mucho mayor.
En la parte más alta del recipiente se coloco el sensor SHARP ****, este sensor mide la distancia
que hay de un objeto al mismo mediante un haz infrarrojo el cual al rebotar con un objeto el
voltaje que recibe varía dependiendo de la distancia del mismo, para la medición se coloco una
hoja de unicel la cual tiene un grosor de 1 cm, sobre la cual el sensor podría hacer sus mediciones
correspondientes, se decidió colocar el sensor a 23 en la parte más alta para evitar que el agua
haga contacto con el circuito (Ver imagen 1.2).
Sensor SHARP
Luz infrarroja
***
23 cm 20 cm
Cuando el sensor detecte una cierta altura del nivel del agua, dentro del microprocesador
se harán las operaciones necesarias para determinar si es que aun se encuentra dentro del
nivel permitido, si el sensor detecta una menor cantidad de agua se repite el proceso de
cálculos dentro del microprocesador y se manda automáticamente una señal al relevador
para que este pueda accionar una bomba de agua la cual se encuentra dentro de un
deposito el cual tiene liquido para poder llenar el tanque, este estará accionado hasta que
el nivel de agua llegue al nivel previamente establecido.
Los niveles de agua podían ser visualizados en un LCD el cual mostrara los datos digitales
que son enviados del microcontrolador, para ello se tuvieron que hacer cálculos para
poder visualizar los datos correctos.
Una vez teniendo el código de programa se procedió a hacer el impreso de nuestro
proyecto, a continuación se muestra el resultado final del trabajo en la imagen 1.
Procedimiento
Para nuestra práctica se utilizaron los siguientes materiales:
Material utilizado
Material:
Operaciones y resultados
Los datos del sensor fueron capturados en base al voltaje que se podía percibir según la
distancia a la que este se encontrara, los datos obtenidos son los siguientes:
v cm
0.645 0
0.678 2
0.831 5
1.082 9
1.462 12
2.081 15
2.5 18
20
18
16 f(x) = − 4.53 x² + 22.85 x − 11.57
14
12
10
Polynomial ()
8
6
4
2
0
0.5 1 1.5 2 2.5 3
Aquí se ajusto la curva de los datos que resulto final por que el sistema no puede resolver
operaciones con puntos decimales dentro de la operación, entonces se realizo un segundo
ajuste para poder trabajar dentro del microcontrolador, los nuevos datos ya con la función
ajustada es Y= -4x^2+23x-12.
V CM
0.645 1.1709
0.678 1.755264
0.831 4.350756
1.082 8.203104
1.462 13.076224
2.081 18.540756
2.5 20.5
0.875 5.0625
0.9 5.46
0.989 6.834516
25
20
15
10
0
0.5 1 1.5 2 2.5 3
Con estos datos resulta de manera más fácil y adecuada el poder trabajar en el sistema.
Código de la programación
#include <built_in.h>
unsigned char ch;
unsigned int adc_rd;
char *text,*text1,*text2,*carac;
long tlong,altura,volumen,volumen2;
char bufer[10];
float tlongf;
void main() {
ADCON1 = 0x07;
TRISA = 0xFF;
TRISB = 0x00;
TRISD = 0x00;
PORTD = 0;
Lcd_Init(&PORTB);
LCD_Cmd(LCD_CURSOR_OFF);
LCD_Cmd(LCD_CLEAR);
Delay_ms(750);
LCD_Cmd(LCD_CLEAR);
text = "Agua almacenada:";
while (1) {
adc_rd = ADC_read(2);
LCD_Out(1,1,text);
tlong = (long)adc_rd*5000;
tlong = tlong / 1023;
tlongf = (float)tlong / 1000;
altura = ((-(4*(tlongf))*(tlongf))+(23*(tlongf))-12);
volumen= (altura*20*20);
volumen2= volumen/1000;
carac=volumen/1000;
LCD_Chr(2,1,48+carac);
if(volumen2<=3)
{
PORTD.F2=1;
PORTD.F0=1;
PORTD.F1=0;
}
else
{
PORTD.F2=0;
PORTD.F0=0;
PORTD.F1=1;
}
LCD_Chr_CP('.');
carac = (volumen / 100) % 10; // 0.1 litros digito
LCD_Chr_CP(48+carac);
carac = (volumen / 10) % 10; // 0.01 litros digito
LCD_Chr_CP(48+carac);
carac = volumen % 10; // 0.001 listros digito
LCD_Chr_CP(48+carac);
Delay_ms(1);
}
}
Resultados
Se logro diseñar el sistema para el control de nivel de agua, no se presento ningún
problema en los componentes electrónicos sin embargo se presento un problema de agua
de agua en el recipiente donde se almacenaba, sin embargo la solución del mismo
problema fue rápida.