Cómo conectar un sensor ultrasónico HC-SR04 a tu Arduino UNO (paso a paso)
Compartir
¿Quieres que tu Arduino "vea" objetos y calcule distancias? El sensor ultrasónico HC-SR04 es el punto de partida perfecto: es el mismo sensor que usan la mayoría de robots esquivadores de obstáculos, alarmas de estacionamiento caseras y medidores de distancia. En esta guía armamos el circuito desde cero y lo probamos con código real.
¿Qué vamos a necesitar?
- 1 Arduino UNO R3
- 1 sensor ultrasónico HC-SR04
- 4 cables macho-macho (jumpers)
- 1 protoboard (opcional, pero recomendada para mantener todo ordenado)
- Cable USB para conectar el Arduino a tu computadora
Puedes encontrar el Arduino UNO R3 y el sensor ultrasónico en nuestra colección de módulos y sensores.
¿Cómo funciona el HC-SR04?
El sensor tiene 4 pines: VCC, Trig, Echo y GND. Funciona así:
- El pin Trig envía un pulso ultrasónico (una onda de sonido que no podemos escuchar).
- Esa onda rebota contra el objeto más cercano y regresa al sensor.
- El pin Echo recibe esa señal de vuelta.
- Arduino mide cuánto tiempo tardó el sonido en ir y volver, y con eso calcula la distancia.
Es literalmente el mismo principio que usan los murciélagos y los sonares de los submarinos.
Paso 1: Conecta el sensor al Arduino
Sigue este orden de conexión:
| Pin del HC-SR04 | Pin del Arduino UNO |
|---|---|
| VCC | 5V |
| GND | GND |
| Trig | Pin digital 9 |
| Echo | Pin digital 10 |
Si usas protoboard, coloca el sensor sobre ella y conecta cada pin con un jumper al Arduino siguiendo la tabla. No hay riesgo de dañar nada si te equivocas de pin digital (9 y 10 son solo una sugerencia), pero VCC y GND sí deben ir donde corresponde.
Paso 2: Sube este código a tu Arduino
Abre el IDE de Arduino, conecta la placa por USB y pega el siguiente código:
// Definimos los pines
const int pinTrig = 9;
const int pinEcho = 10;
void setup() {
Serial.begin(9600); // Iniciamos el monitor serial
pinMode(pinTrig, OUTPUT); // Trig envía la señal
pinMode(pinEcho, INPUT); // Echo recibe la señal
}
void loop() {
long duracion;
float distanciaCm;
// Enviamos un pulso de 10 microsegundos por Trig
digitalWrite(pinTrig, LOW);
delayMicroseconds(2);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
// Medimos cuánto tarda en volver la señal por Echo
duracion = pulseIn(pinEcho, HIGH);
// Convertimos el tiempo en distancia (velocidad del sonido = 343 m/s)
distanciaCm = duracion * 0.0343 / 2;
Serial.print("Distancia: ");
Serial.print(distanciaCm);
Serial.println(" cm");
delay(500); // Medio segundo entre lecturas
}
Paso 3: Prueba tu sensor
- Abre el Monitor Serial en el IDE de Arduino (ícono de lupa arriba a la derecha, o Ctrl+Shift+M).
- Asegúrate de que la velocidad esté en 9600 baudios (esquina inferior derecha del monitor).
- Pon tu mano frente al sensor y muévela más cerca y más lejos.
- Deberías ver los valores de distancia cambiar en tiempo real, en centímetros.
Si ves números que no cambian o que se disparan a valores absurdos, revisa que Trig y Echo no estén invertidos — es el error más común.
¿Y ahora qué? Ideas para seguir el proyecto
Con esto ya funcionando, puedes dar el siguiente paso:
- Alarma de proximidad: agrega un buzzer que suene cuando la distancia sea menor a 10 cm.
- Robot esquivador de obstáculos: combina este sensor con dos motores y un chasis para que el robot gire automáticamente al detectar algo cerca. Nuestro Kit Robótico ya trae todo lo necesario para este proyecto.
- Medidor de nivel: monta el sensor apuntando hacia abajo en un tanque de agua para medir el nivel de llenado.
Si te trabaste en algún paso o quieres que armemos juntos el siguiente proyecto, escríbenos — en Panca Store te ayudamos con atención personalizada en cada compra.