Medidor de distancia por ultrasonidos con PIC16F886

Páginas: 5 (1191 palabras) Publicado: 16 de junio de 2014
Medidor de distancia por ultrasonidos con PIC16F886

Vamos a partir de un módulo muy extendido, muy barato y muy sencillo de manejar el HC-SR04, una placa entrenadora basada en un 16F886 y un display LCD de 16×2 caracteres con un registro de desplazamiento 74LS164, para construir un medidor de ultrasonidos bastante preciso con un alcance de entre 3 y 4 metros y una distancia mínima dedetección de unos 2 cm.
El circuito que hagamos puede servirnos simplemente para sustituir al flexómetro,o como base para otras muchas aplicaciones: robótica móvil, medición del nivel de líquidos (el agua de la pecera por ejemplo), o detección de presencia en un antirobo.
Aprovechando la ocasión, veremos como escribir datos en un LCD de texto utilizando sólo dos pines del PIC y las funciones de salidaestándar de C.
El módulo HC-SR04 tiene sólo cuatro pines que conectar, los dos de alimentación (va a 5 voltios), un “trigger” que mantenemos a 1 durante al menos 10 us para empezar a medir y una señal de retorno “echo” que se pondrá a 1 durante un tiempo equivalente al que tarda el sonido en ir y volver. En el aire a 22ºC, la velocidad del sonido es de unos 344 m/s, por lo que sólo hay que medir eltiempo del pulso y dividir por dos la distancia resultante (medimos la ida y la vuelta). Simplificando, podemos dividir los us que dura el eco por 58 para sacar la distancia recorrida en cm.

Por otro lado vamos a visualizar la medida con un display LCD de 16×2. Para hacer la conexión completa necesitamos 8 pines para los datos y otros 3 para las señales RS, R/W, y E. En realidad casi nonecesitaremos leer registro del LCD, con lo que podemos prescindir de la señal R/W, tampoco necesitamos las ocho líneas de datos, se pueden enviar en bloques de cuatro bits, así que nos bastan 6 señales. Para enviar estas 6 señales podríamos utilizar 6 pines del PIC, pero en su lugar introducimos un registro de desplazamiento de 8 bits, que necesita solamente una señal de datos y otra de reloj.

Asíqueda el cableado:

En el programa enviamos continuamente el trigger, medimos el tiempo de respuesta con un temporizador, lo pasamos a cm y lo representamos en la pantalla utilizando la librería “flexlcd” junto con las funciones de entrada/salida estándar de C, como se ve en el ejemplo.


Descarga el proyecto en C en el enlace que hay al final de la entrada. Al compilarlo obtienes el binario.HEX que puedes desensamblar para obtener un fichero .ASM
Otra opción dentro del compilador CCS es pulsar en el icono “C/ASM List” en el menú “Compile”, para ver el equivalente en ensamblador de cada línea de programa en C.
Hola una pregunta, que versión de CCS manejas? tengo la 4.104 y me da bastantes problemas..
La versión que uso es la 4.13, si no recuerdo mal. Ha mejorado algunas cosas, peroaun así el compilador sigue dando guerra. A veces es un poco imprevisible con la conversión de tipos (casting) y por ejemplo en el DSPIC tiene problemas con la instrucción printf y los números en coma flotante si no se incluye la directiva #build (stack=256) al principio del programa. Luego el wizard no va muy bien dependiendo del modelo de PIC.




hc sr04 con pic en ccs (Medida distanciapor sensor de ultrasonido)





#include
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP     
#use delay(clock=4000000)
                          
#include


int16 distancia, tiempo;
#define trig pin_B1
#define echo pin_B0
#USE standard_io(b)

void main()
{
   lcd_init();                             
printf(LCD_PUTC, "\f Iniciando.");
delay_ms(500);
printf(LCD_PUTC, "\fIniciando..");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando...");
delay_ms(500);
                            
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);

while(1)
{
output_high(trig);                   
delay_us(20);                       
output_low(trig);
while(!input(echo))                     
{}
set_timer1(0);                         
while(input(echo))                     
{}...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Medidor ultrasonico de distancias
  • Medidores de distancia por ultrasonidos
  • Medidor de distancia con sensor ultrasónico PIC
  • Medidor de distancia por ultrasonido
  • medidor de distancia
  • Medidor de distancia
  • Medidor De Distancia Ultarsonico
  • Medidores ultrasonicos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS