El sensor ultrasónico es una herramienta versátil que permite medir distancias de forma precisa sin contacto físico, ideal para proyectos de robótica, domótica, alarmas y vehículos autónomos. En este artículo aprenderás cómo usar el sensor PING))) o HC-SR04 con Arduino UNO para detectar la distancia de objetos.
🧰 Materiales necesarios
1 Arduino UNO(Incluye cable USB para conexión)
1 Sensor de distancia ultrasónico HC-SR04 ó PING)))
3-4 jumpers macho-macho
1 Protoboard (opcional)
🔌 Conexiones
Basado en la imagen del montaje:
PING))) | Arduino UNO |
---|---|
GND | GND |
5V | 5V |
SIG | Pin 7 |

💻 Código Arduino
Este código mide la distancia en centímetros utilizando el sensor ultrasónico y muestra los resultados en el monitor serial:
const int pinSensor = 7; // Pin de señal del sensor PING
long duracion;
int distancia;
void setup() {
Serial.begin(9600);
pinMode(pinSensor, OUTPUT);
}
void loop() {
// Enviar pulso ultrasónico
pinMode(pinSensor, OUTPUT);
digitalWrite(pinSensor, LOW);
delayMicroseconds(2);
digitalWrite(pinSensor, HIGH);
delayMicroseconds(5);
digitalWrite(pinSensor, LOW);
// Cambiar pin a entrada para recibir el eco
pinMode(pinSensor, INPUT);
duracion = pulseIn(pinSensor, HIGH);
// Calcular la distancia en cm (dividir entre 29*2)
distancia = duracion / 29 / 2;
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
delay(500);
}
¿Cómo funciona?
El sensor ultrasónico emite un pulso de sonido inaudible que rebota contra un objeto y vuelve al sensor. Midiendo el tiempo que tarda en regresar, se calcula la distancia. Este tipo de sensores es ideal para evitar obstáculos en robots o controlar niveles en recipientes.
Aplicaciones comunes
Robótica móvil (evitar obstáculos)
Alarmas de proximidad
Estacionamiento asistido
Drones con sensores frontales
Medición de niveles de líquido sin contacto
Conexiones para HC-SR04
HC-SR04 | Arduino UNO |
---|---|
VCC | 5V |
GND | GND |
TRIG | Pin 9 |
ECHO | Pin 10 |
💻 Código modificado para HC-SR04
const int trigPin = 9;
const int echoPin = 10;
long duracion;
int distancia;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Enviar pulso ultrasónico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Medir duración del eco
duracion = pulseIn(echoPin, HIGH);
// Calcular distancia en centímetros
distancia = duracion / 29 / 2;
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
delay(500);
}
Nota adicional
El cálculo de distancia funciona igual, ya que ambos sensores usan ultrasonido y el tiempo de eco para estimar la distancia. Solo cambia la forma en que se controla el sensor.
Recomendación
Si estás empezando, el HC-SR04 puede ser más accesible económicamente y fácil de encontrar. Ambos sensores son confiables, pero asegúrate de alimentar siempre con 5V y evitar exponerlos a golpes o humedad.