El HC-SR04 es un sensor ultrasónico, estos sensores de proximidad, trabajan libres de roce mecánico y estos nos ayudan a detectar objetos a distintas distancias que van desde centímetros hasta algunos metros aproximadamente va de 2 a 450 cm.
Estos sensores poseen dos transductores un emisor y un receptor (ambos son piezoeléctricos) y estos producen y envían señales ultrasónicas y nos ceden el tiempo en el que se demoró en ir y venir hasta el obstáculo más cercano a este.
Este sensor cuenta con una sensibilidad muy efectiva ya que se considera en las aplicaciones de medir o detectar obstáculos. genera ondas ultrasónicas y el impulso de onda va encontrar el objeto, se refleja y se considera la medida de distancia.
La principal función de este sensor es contar el tiempo que transcurre entre la emisión y la recepción de la señal ultrasónica. Como mencionamos, estas ondas van a tener propiedades de propagación a través de sonido
CONEXIÓN
Características.
- Voltaje de alimentación de 5V
- Trigger – Distancia de detección de 10us en alto y 60ms en bajo
- Echo – Pulso de disparo de 2 cm a 400 cm
- Corriente de alimentación de 15mA
- Frecuencia de pulso de 40KHz
Conexión entre el sensor HC-SR04 y Arduino:
- Trigger: conexión con el pin de Arduino.
- Echo: conexión con el pin de Arduino.
- VCC – Voltaje de Alimentación: conexión de voltaje de 5V.
- GND – Tierra: pin del Arduino a GND.
Programa
El siguiente código se cargará que nuestro Arduino el cual controlará la distancia y encenderá la alarma en la distancia requerida. El sensor HC-SR04 comenzara a detectar la distancia del objeto que este frente a él, según sea la distancia de alarma estipulada en el código.
En caso de querer tener un aproximado de distancia en centímetros del sensor con el objeto enfrente de él y poder observarlo en el monitor serial podremos utilizar la formula de velocidad.
Fórmula.
- La velocidad es la velocidad del sonido de 340m/s.
- Tiempo en el que viaja el ultrasonido y llega al objeto y regresa del objeto al sensor.
- Distancia recorrida es dos veces la distancia que va hacia el objeto
Y colocamos el código en Arduino y lo ejecutamos.
Código
const int Trigger = 2; //Pin digital 2 para el Trigger del sensor
const int Echo = 3; //Pin digital 3 para el Echo del sensor
void setup()
{
Serial.begin(9600);//iniciailzamos la comunicación
pinMode(Trigger, OUTPUT); //pin como salida
pinMode(Echo, INPUT); //pin como entrada
digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
}
void loop()
{
long t; //timepo que demora en llegar el eco
long d; //distancia en centimetros
digitalWrite(Trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso
d = t/59; //escalamos el tiempo a una distancia en cm
Serial.print("Distancia: ");
Serial.print(d); //Enviamos serialmente el valor de la distancia
Serial.print("cm");
Serial.println();
delay(100); //Hacemos una pausa de 100ms
}