Sensor Ultrasonido HC-RS04 Arduino y Microbit
Proyecto Robot Sumo
Sensores de Ultrasonido HC-SR04
Guía de Conexión Paso a Paso
1
PreparaciónEspacio limpio, Arduino, sensor HC-SR04, protoboard y jumpers.
2
IdentificaciónUbica VCC, TRIG, ECHO y GND en la base del sensor.
3
Alimentación (VCC)Conecta VCC del sensor al pin 5V del Arduino.
4
Masa (GND)Conecta GND del sensor al pin GND del Arduino.
5
Disparador (TRIG)Conecta TRIG al pin digital 9 del Arduino.
6
Receptor (ECHO)Conecta ECHO al pin digital 8 del Arduino.
Código Profesional para Robot Sumo
Este programa permite al robot detectar obstáculos en tiempo real para evitar colisiones.
sensor_ultrasonido.ino
// 1. Definimos los pines de conexión
#define trigPin 9 // Envía el pulso
#define echoPin 8 // Recibe el eco
// 2. Variables de medición
long duracion;
int distancia;
void setup() {
// 3. Monitor Serial para PC
Serial.begin(9600);
// 4. Configuración de pines
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// 5. Limpieza del emisor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// 6. Activación del pulso (10us)
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 7. Lectura del tiempo de rebote
duracion = pulseIn(echoPin, HIGH);
// 8. Cálculo de distancia (cm)
// Vel. sonido = 0.034 cm/us (Ida y vuelta / 2)
distancia = duracion * 0.034 / 2;
// 9. Salida de datos
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
delay(500); // Pausa de lectura
}
Explicación Técnica
Paso 1: Definición
Usamos #define para que sea fácil cambiar los pines si modificas el hardware del robot.
Paso 2: Configuración
trigPin debe ser OUTPUT para disparar el sonido y echoPin INPUT para escucharlo.
Paso 3: Disparo
El pulso de 10 microsegundos es el "estándar de oro" para despertar al sensor HC-SR04.
Paso 4: Matemática
Dividimos entre 2 porque el sonido viaja hasta el objeto y regresa; solo queremos el camino de ida.
⚠️ Nota de Seguridad: micro:bit opera a 3.3V. El sensor requiere 5V. Debes usar un divisor de tensión en el pin Echo.
main.py (MakeCode)
def medir_distancia():
pins.digital_write_pin(DigitalPin.P0, 0)
control.wait_micros(2)
pins.digital_write_pin(DigitalPin.P0, 1)
control.wait_micros(10)
pins.digital_write_pin(DigitalPin.P0, 0)
duracion = pins.pulse_in(DigitalPin.P1, PulseValue.HIGH)
distancia = (duracion * 0.034) / 2
return Math.round(distancia)
def on_forever():
d = medir_distancia()
serial.write_value("distancia_cm", d)
basic.pause(500)
basic.forever(on_forever)
Pruebas Experimentales
- Revisa conexiones y cables sueltos.
- Selecciona placa y puerto en Arduino IDE.
- Carga el código (Botón "Subir").
- Abre el Monitor Serial (9600 baud).
- Prueba objetos a diferentes distancias.
- Verifica rango de 2cm a 400cm.
