1. CONTROL DE LIQUIDO CON SEÑALES DE
ULTRASONIDO
OBJETIVO.-
Implementar el sistema de control de nivel con el sensor de ultrasonido yun autómata
programable.
Sistema de control de nivel de líquido que también abarca temas como el manejo de potencias para el
accionamiento de una electro válvula y una bomba electro sumergible. Este proyecto esta
completamente controlado por un microcontrolador con aplicaciones como la conversión análoga-
digital, el manejo del teclado matricial y del display de cristal líquido (LCD), el operador del sistema
podrá ingresar el valor del nivel de agua deseado en el tanque almacenador y este por medio del
sistema de sensado implementado con poleas y de la bomba se llenará posicionándose en dicho valor, el
líquido proviene de un tanque distribuidor haciéndolo un circuito cerrado de control. Keywords:
microcontroladores, potencia, control, conversión A/D, posicionamiento, sensor análogo.
Tanque Almacenador
El control del nivel de líquido en los depósitos y el flujo entre ellos es un problema básico en los
procesos industriales. Los procesos industriales requieren líquidos para ser bombeados, almacenados en
tanques y luego bombeados a otros tanques; esto se puede aplicar al uso del agua dentro de una casa,
ya que al controlar el nivel de agua que se tiene en una cisterna automáticamente se controla el nivel de
agua existente en toda la casa.
La vida del ser humano es gobernada por sistemas de control de nivel de flujo. Por ejemplo el baño de
nuestra casa, la palanca adjunta a la válvula del tanque de la taza permite al agua fluir dentro del tanque
hasta que el flotador sube a un punto en el que cierra la válvula. Este es un simple y efectivo sistema de
control del nivel de depósitos para agua.
Los sistemas de control del nivel del depósito están en todos lados. Todos los procesos industriales, el
cuerpo humano y los sistemas que manejan fluidos dependen de sistemas de control de nivel.
Medida de distancias con SRF04
En realidad en este proyecyo se emplea un sensor de distancias por ultrasonidos SRF05 pero
funcionando en modo SRF04 con pulso trigger y eco por separados. El sensor SRF05 es una
versión mejorada del clásico SRF04 con el que es compatible.
2. El PIC manda un pulso de al menos 10us por la línea “pulso trigger” para comenzar el proceso de
medida. El SRF04 responde con un tren de 8 impulso ultrasónico a 40khz. Pone su “Pulso eco” en estado
alto hasta recibir el eco ultrasónico de los impulsos. La distanica al objeto estará en función del tiempo
del pulso eco en un rango de 100us (minima distancia medible) hasta 25ms (máxima distancia medible).
Si el senosr no recibe el eco ultrasónico pasa su salida eco a estado bajo a los 30ms.
Velocidad de propagación y longitud de onda
Velocidad de propagación o velocidad acústica (V), es la velocidad de
transmisión de la energía sonora a través de un medio, está determinada por la
3. distancia recorrida por la onda dividida por el tiempo empleado para recorrer esa
distancia. La velocidad de los ultrasonidos en un medio depende de la densidad
y elasticidad del mismo, que a su vez varían con la temperatura; la relación es
directa, a mayor densidad del medio mayor será la velocidad de propagación de
los ultrasonidos. [4]
La relación entre la velocidad de propagación ultrasónica C, la longitud de onda
y la frecuencia son expresadas en la siguiente ecuación:
C = λ*ƒ
C = velocidad de la onda en m/s
ƒ = frecuencia en Hertz (Hz)
λ = longitud de onda en metros (m).
También se puede expresar como:
C = λ I T done ƒ =1/T
T = período de la onda.
La propagación de la velocidad de la onda ultrasónica en los medios se muestra
en la tabla 2.
Reflexión, refracción y la transmisión. Cuando una onda ultrasónica se
propaga a través de una interface entre dos medios, una parte de la energía
transmitida será refleja por la interfaz y el resto puede ser transmitido a través
de la interfaz. La impedancia acústica Z del medio determina la intensidad de la
onda de reflexión o de transmisión. La impedancia acústica Z se define como el
producto de la densidad del medio ρ y la velocidad del sonido C en el medio. Si
4. la onda ultrasónica se transmite a la interfaz entre los diferentes medios de
comunicación,
Descripción:
Dimensiones del circuito 43 x 20 x 17 mm
Tensión de alimentación 5 Vcc
Frecuencia de trabajo 40 KHz
Rango máximo 4.5 m
Rango mínimo 1.7 cm
Duración mínima del pulso de disparo (nivel TTL) 10 μS
Duración del pulso eco de salida (nivel TTL) 100-25000 μS
Tiempo mínimo de espera entre una medida y el inicio de otra 20 Ms
PIC18F4550
5. El componente más importante de la arquitectura hardware del robot es el
PIC18F455 que posee 40 pines. Se ha utilizado este microcontrolador porque tiene
una gran cantidad de pines necesarios para la entrada de los distintos periféricos de
E/S, como los sensores HC-SR04, los CNY70, los motores, etc. Este micro contiene
las funciones necesarias para el control de los motores y para el uso de los sensores,
como por ejemplo los distintos Timers.
3.2 Sistema sensorial
El robot tiene dos tipos de sensores: Los sensores infrarrojos CNY70 y los sensores
de ultrasonido HC-SR04.
-Sensores CNY70:
Serán utilizados para evitar salirnos del tatami. Se dispondrán cuatro sensores
CNY70 en cada una de las esquinas del robot, en la parte inferior de la placa de
policarbonato. Este sensor, a través de un diodo que emite luz por infrarrojos y un
fototransistor detectan la diferencia de blanco y negro.
Al emitir luz, ésta se refleja en el borde blanco del tatami y se produce la reflexión.
Se envía una señal al Pic, y éste hace que los motores realicen una acción para
volver a la zona negra.
-Sensores HC-SR04:
6. Para la detección del oponente vamos a utilizar sensores ultrasonidos (SFR04). La
mayoría de los sensores de ultrasonido de bajo coste se basan en la emisión de un
pulso de ultrasonido cuyo lóbulo, o campo de acción, es de forma cónica.
Midiendo el tiempo que transcurre entre la emisión del sonido y la percepción del
eco
se puede establecer la distancia a la que se encuentra el obstáculo que ha
producido la reflexión de la onda sonora.
Control de motores
La alimentación de los motores la podremos seleccionar mediante una tira de
pines. Se puede seleccionar entre alimentación externa o la misma alimentación
que también suministra tensión a la electrónica de la placa.
Hemos utilizado el driver L293D y varios transistores para crear un puente en H,
para el control del giro de cada motor.
PROGRAMA
7. ////////////////////////////////////////////////////////////////////////////////
// //
// MEDIDA DE DISTANCIAS CON SRF04 //
// //
// (c) RobotyPic 2010 //
// //
////////////////////////////////////////////////////////////////////////////////
#include <16F877A.h>
#fuses XT, NOWDT, NOPROTECT
#use delay(clock=4000000) //Frecuencia del cristal oscilador 4MHz
#byte PIR1=0x0C
#byte trisa=0x85
#byte porta=0x05
#byte trisb=0x86
#byte portb=0x06
#byte trisc=0x87
#byte portc=0x07
#define use_portb_lcd TRUE //Configuración del puerto b para uso del lcd
#include <lcd.c> //Incluye uso del archivo para control del lcd
#define BIT_TEST_ON output_high(PIN_C0)
#define BIT_TEST_OFF output_low(PIN_C0)
8. /********************** Prototipos de las funciones ***************************/
void main (void); //función principal
void pulso_test (void); //da pulso y calcula distancia al objeto
void ccp2_int(void); //captura del pulso de eco
/******************** Variables para lectura distancia ************************/
int1 nuevopulso=0; //Entra otro pulso de lectura
int16 TFB=0,TFS=0,TF=0; //Tiempo flancos
float distancia=0.0; //Valor distancia al obstáculo
int1 cambio=0; //Control flanco subida o bajada del impulso leido
/******************************************************************************/
/*********************** FUNCIÓN PULSO DE TEST ********************************/
void pulso_test(){
enable_interrupts(INT_CCP2); //Habilitación interrupción para medida de pulso eco
BIT_TEST_ON; //salida de pulso test durante 10us por Bit 0 puerto C
delay_us(10);
BIT_TEST_OFF;
while(nuevopulso==0) //Espera a finalizar el pulso eco
{}
if(nuevopulso==1){ //Finalizado el pulso eco se calcula su valor.
TF=(TFB-TFS); //Valor entre pulso de subida y bajada.
distancia=TF*1.0; //Valor pulso leido en us de 100u a 25ms
distancia = distancia/58; //Distancia del obstáculo en cm
9. nuevopulso=0; //Listo para recibir nuevo pulso
}
disable_interrupts(INT_CCP2);
}
/******************************************************************************/
/************************ FUNCIÓN LECTURA OBSTÁCULO ***************************/
#int_ccp2 //LLamada por interrupción flanco en RC2
void ccp2_int(){
if(cambio==0){ //Si es flanco de subida...
TFS=CCP_2; //Carga en valor flanco subida valor registro ccpr1
setup_ccp2(CCP_CAPTURE_FE); //Configuración modo captura en flanco de bajada
cambio=1; //Próximo flanco debe ser de bajada
}
else { //Si es flanco de bajada...
TFB=CCP_2; //Carga en valor flanco bajada valor registro ccpr2
setup_ccp2(CCP_CAPTURE_RE); //Configuración modo captura en flanco de subida
cambio=0; //Próximo flanco debe ser de subida
if(nuevopulso==0) //Fin de pulso...
nuevopulso=1; //Pulso finalizado.
}
}
/******************************************************************************/
/*************************** FUNCIÓN PRINCIPAL ********************************/
10. void main(){
trisb=0x00; //Puerto B todo salidas
trisc=0b00000100; //Puerto C definición de entradas y salidas
setup_timer_1(T1_INTERNAL); //Configuración timer1 para lectura objeto
setup_ccp2(CCP_CAPTURE_RE); //Configuración modo captura en flanco de subida
disable_interrupts(INT_TIMER1);
disable_interrupts(INT_CCP2); //Deshabilitación interrupción modo comparación
enable_interrupts (GLOBAL);
lcd_init(); //Inicialización de la pantalla lcd
printf(lcd_putc, "fMedida distancia");
printf(lcd_putc,"n con srf04 ");
delay_ms(2000);
printf(lcd_putc,"f (c) Control d Liquido ");
delay_ms(2000);
while (1){
pulso_test(); //Envío del pulso ultrasónico
printf(lcd_putc,"fDistancia=%5.2f", distancia);
delay_ms(500); //Refresco de la medida
}
CIRCUITO
11. CONCLUSION.-
Los sensores de ultrasonido son unos de los más económicos, fáciles de
manipular y pueden detectar objetos en el orden de los metros sin necesidad de
algún filtro o adaptación especial. El SRF05, es un sensor de distancias por
ultrasonidos desarrollado por la firma DEVANTECH Ltda. Capaz de detectar
objetos y calcular la distancia a la que se encuentra en un rango de 1,7 a 431 cm.
Una metodología para encontrar los parámetros del controlador, es la respuesta
en frecuencia; el cual nos representa la señal de salida en magnitud y fase,
facilitando la búsqueda de los controladores, debido a la relación