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.

Entradas populares de este blog