Sensor de aparcamiento (estacionamiento) con Arduino y HC-SR04 (materiales, conexiones y código)

Arduino ile Park Sensörü Yapımı projesi kapak görseli

Bu yazıyı Türkçe okuyun · Read in English

¿Qué hace este proyecto?

Construimos con Arduino una versión pequeña del sensor de aparcamiento de un coche. El sensor ultrasónico mide a qué distancia está el objeto que tiene delante. A medida que el objeto se acerca, los LED pasan de verde a amarillo y luego a rojo, y el zumbador pita cada vez más rápido. Cuando el objeto está muy cerca, el zumbador suena de forma continua.

  • Edad: a partir de 10 años (secundaria y bachillerato)
  • Nivel: Intermedio
  • Tiempo: unos 45–60 minutos
  • Qué aprenderás: medir distancias con un sensor ultrasónico, tomar decisiones con if–else, hacer sonidos con un zumbador

Lista de materiales

MaterialCant.
Arduino Uno (o compatible)1
Sensor ultrasónico de distancia HC-SR041
Zumbador pasivo1
LED (verde, amarillo, rojo)3
Resistencia de 220 Ω3
Protoboard1
Cables puente macho-macho~12
Cable USB1

Conexiones

Esquema de conexiones del sensor de aparcamiento con Arduino y HC-SR04
ComponentePin del componentePin de Arduino
HC-SR04VCC5V
HC-SR04TrigD9
HC-SR04EchoD10
HC-SR04GNDGND
Zumbador+ (pata larga)D8
Zumbador–GND
LED verdePata larga (a través de 220 Ω)D5
LED amarilloPata larga (a través de 220 Ω)D6
LED rojoPata larga (a través de 220 Ω)D7
LEDPatas cortasGND

Código

// Sensor de aparcamiento con Arduino - ozandamci.com

const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 8;
const int greenLed = 5;
const int yellowLed = 6;
const int redLed = 7;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(yellowLed, OUTPUT);
  pinMode(redLed, OUTPUT);
  Serial.begin(9600);
}

int measureDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH, 30000); // espera hasta unos 5 metros
  if (duration == 0) return -1;                  // no hay nada delante
  return duration * 0.034 / 2;                   // centímetros
}

void setLeds(bool green, bool yellow, bool red) {
  digitalWrite(greenLed, green);
  digitalWrite(yellowLed, yellow);
  digitalWrite(redLed, red);
}

void loop() {
  int distance = measureDistance();
  Serial.print("Distancia: ");
  Serial.print(distance);
  Serial.println(" cm");

  if (distance == -1 || distance > 50) {
    // Seguro: solo verde, sin sonido
    setLeds(HIGH, LOW, LOW);
    noTone(buzzerPin);
    delay(200);
  } else if (distance > 20) {
    // Cuidado: amarillo, pitido lento
    setLeds(LOW, HIGH, LOW);
    tone(buzzerPin, 1000, 80);
    delay(map(distance, 20, 50, 150, 500));
  } else if (distance > 5) {
    // Cerca: rojo, pitido rápido
    setLeds(LOW, LOW, HIGH);
    tone(buzzerPin, 1500, 50);
    delay(map(distance, 5, 20, 60, 150));
  } else {
    // Muy cerca: rojo, sonido continuo
    setLeds(LOW, LOW, HIGH);
    tone(buzzerPin, 2000);
    delay(100);
  }
}

Paso a paso

  1. Coloca el sensor. Pon el HC-SR04 en el borde de la protoboard con sus “ojos” mirando hacia fuera.
  2. Conecta las líneas de alimentación. Conecta el pin 5V de Arduino a la línea + de la protoboard y el pin GND a la línea –.
  3. Conecta el sensor. Conecta VCC a la línea +, GND a la línea –, Trig a D9 y Echo a D10.
  4. Coloca los LED. Conecta una resistencia de 220 Ω a la pata larga de cada LED y lleva el verde a D5, el amarillo a D6 y el rojo a D7. Conecta las patas cortas a la línea –.
  5. Conecta el zumbador. Conecta su pata larga a D8 y su pata corta a la línea –.
  6. Sube el código. Abre el Arduino IDE y pega el código. Elige Arduino Uno en Herramientas → Placa, elige el puerto correcto y haz clic en Subir.
  7. Pruébalo. Acerca poco a poco la mano al sensor. Deberías ver cómo cambian de color los LED y oír cómo se acelera el pitido. Puedes seguir la distancia medida en centímetros en Herramientas → Monitor Serie.

Solución de problemas

  • El sonido no cambia y pita todo el rato: Puede que tu zumbador sea activo. Usa uno pasivo o, con un zumbador activo, usa digitalWrite(buzzerPin, HIGH/LOW) en lugar de tone().
  • La distancia siempre marca 0 o -1: Comprueba que los cables Trig y Echo no están intercambiados.
  • Un LED no se enciende: Puede que el LED esté al revés. La pata larga debe ir al pin de Arduino.

Pruébalo tú mismo

  • Cambia los límites de distancia (50, 20 y 5 cm) para adaptar el sensor a distintas situaciones.
  • Añade una pantalla LCD de 16×2 y muestra en ella la distancia.
  • Monta el proyecto en la parte trasera de un coche de juguete.

Vídeo

La narración está en turco. Hay subtítulos en español: pulsa CC en el vídeo.

Birisi “Sensor de aparcamiento (estacionamiento) con Arduino y HC-SR04 (materiales, conexiones y código)” üzerinde düşündü

Bir Cevap Yazın