Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAMPOS INVENTRONICA
V I E RN E S, 6 DE A BRI L DE 2 0 1 2
A RCH I V O DE L BL OG
2014 (2)
2013 (2)
2012 (6)
diciembre (1)
abril (2)
vending control de acceso a
sanitarios
Como usar sensor ultrasonico
HC-SR04
febrero (3)
2011 (2)
2008 (1)
Caracteristicas:
Alimentacion: 5V
Angulo de sensado: 15
Rango de distancia: 2 a 500 cm
Numero de pines: 4 (VCC,TRIG,ECHO,GND)
http://campos-inventronica.blogspot.com/2012/04/como-usar-sensor-ultrasonico-hc-sr04.html
1/10
14/4/2014
Dimensiones:
Modo de funcionamiento:
Para hacer una lectura con el HC-SR04
basta con seguir estos pasos:
1) enviar un pulso de minimo 10us por el
pin TRIG (disparo) para iniciar la lectura.
2) el sensor enviara 8 pulsos de
ultrasonido y colocara su salida ECHO a
http://campos-inventronica.blogspot.com/2012/04/como-usar-sensor-ultrasonico-hc-sr04.html
2/10
14/4/2014
EJEMPLO
Naturalmente usaremos un PIC para manejar el sensor, el compilador
que utilizaresmos es PICC Compiler de CCS, el PIC utilizado puede ser
cualquiera de tu preferencia, la cabecera del programa no la pondre
porque puedes usar el PIC que tu quieras, esa es la ventaja de PICC,
la portabilidad de codigo.
http://campos-inventronica.blogspot.com/2012/04/como-usar-sensor-ultrasonico-hc-sr04.html
3/10
14/4/2014
4/10
14/4/2014
}
Este while termina cuando el pin echo a ido a cero, es decir ya
termino la lectura, asi que terminamos con una demora de 50ms,
tiempo sugerido por el datasheet del sensor y retornaremos con el
valor de los centimetros medidos:
delay_ms(50);
return(centimetros);
}// fin de la funcion "mide_distancia"
//******************************************************************
http://campos-inventronica.blogspot.com/2012/04/como-usar-sensor-ultrasonico-hc-sr04.html
5/10
14/4/2014
**
// Cabecera del programa, depende del pic que uses
//******************************************************************
**
//******************************************************************
**
// Funcion de mide distancia de sensor ultrasonico#define trig
pin_c6
#define echo input(pin_c7)
int16 mide_distancia(void){
int16 centimetros=0;
//pulso de disparo:
output_high(trig);
delay_us(50);
output_low(trig);
//espera flanco de subida por el pin echo
while(echo==0);
//comienza a contar centimetros hasta que pin echo sea cero
while(echo==1){
centimetros++;
delay_us(58);
}
//demora de seguridad y retorna con el valor de centimetros
contados
delay_ms(50);
return(centimetros);
}
//******************************************************************
**
//******************************************************************
**
// Funcion principal del programavoid main( void ){
int16 distancia;
int8 i;
lcd_init(); // inicializa lcd
6/10
14/4/2014
lcd_gotoxy(1,1);
if(distancia>500){ // si lectura > 500cm entonces no es valida, osea
no hay objeto
lcd_putc('\f'); // Borra LCD
printf(lcd_putc,"NO DETECTED!");
output_low(pin_c0);
}
else{ // si distancia fue < 500cm es una distancia valida y la imprime
en LCD
printf(lcd_putc,"%03lucm ",distancia);
output_high(pin_c0);
}
}// cierra lazo infinito
}// cierra main
//******************************************************************
**
*************************************************************
COMENARIOS SOBRE EL PROGRAMA DE EJEMPLO:
Este codigo de ejemplo tiene sus ventajas y sus desventajas, la gran
ventaja es que es todo por software por lo que no consume recursos
de TIMERS del PIC.
La desventaja es que el tiempo de medicion de centimetros puede
variar ya que depende de la velocidad del PIC que estas trabajando,
esto se refleja en que mide cm mas grandes, esto se resuelve
disminuyendo el valor del DELAY_US(58); hasta el valor que se ajuste
a los cm reales.
**************************************************************
robosapiens@hotmail.com
Pregunda o pidelo a:
7/10