Contenidos
El Sensor HC-SR04
Principio de funcionamiento del HC-SR04
El HC-SR04 es un sensor para medir distancias mediante ultrasonidos, el funcionamiento es simple, envía un sonido por debajo del umbral que percibe el oido humano (ultrasonido) y espera a recibir el eco, cuando recibe la señal de vuelta medimos el tiempo entre envió y recepción y obtenemos la distancia.
Conexiones del HC-SR04
El sensor dispone de cuatro conexiones:
- Alimentación: 5V
- Enviar pulso: Tigger Pulse Input
- Recibir Eco: Echo Pulse Ouput
- Masa: GND
Características del sensor de ultrasonidos HC-SR04
Tensión de Trabajo | 5V DC |
Consumo | 15mA |
Frecuencia | 40Hz |
Alcance máximo | 4m |
Alcance mínimo | 2cm |
Angulo de Medición | 15º |
Señal Trigger de entrada | 10uS pulso TTL |
Eco de retorno | Entrada TTL proporcional a la entrada |
Dimensiones | 45*20*15mm |
Conexión Electrica del Sensor con Arduino
Ejemplo Arduino y Sensor Ultrasonidos en Protoboard
Esquema eléctrico del sensor de ultrasonidos para Arduino
Programa en Arduino
Explicación previa a la programación del HC-SR04
El sensor de ultrasonidos HC-SR04 necesita que se le envié una señal de 5v desde el Arduino por Trig, en nuestro esquema conectado al pin 9. Una vez enviado esperamos la respuesta con pulseIn() y con ello obtenemos el tiempo de respuesta. La distancia se optiene de multiplicar una constante por el tiempo.
Código
long distancia;
long tiempo;
void setup(){
Serial.begin(9600);
pinMode(9, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/
pinMode(8, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/
}
void loop(){
digitalWrite(9,LOW); /* Por cuestión de estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envío del pulso ultrasónico*/
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío
del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/
/*Monitorización en centímetros por el monitor serial*/
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");
delay(1000);
}
Una vez programado y compilado el Arduino veremos por el monitor serial las distancias a las cuales se encuentra un obstáculo de nuestro sensor.
Adquirir el Sensor de Proximidad
Si necesitas un Sensor de Proximidad para tu proyecto puedes acceder a nuestra sección de productos para adquirir el que mejor te convenga, distintos precios y vendedores. O pinchar aquí para ir directamente a buscar un sensor de ultrasonidos.
Vídeo de Ejemplo
Si quieres hacer cosas más complicadas y necesitas ayuda me ofrezco como freelance para desarrollo con Arduino y Similares.