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
| Material | Cant. |
|---|---|
| Arduino Uno (o compatible) | 1 |
| Sensor ultrasónico de distancia HC-SR04 | 1 |
| Zumbador pasivo | 1 |
| LED (verde, amarillo, rojo) | 3 |
| Resistencia de 220 Ω | 3 |
| Protoboard | 1 |
| Cables puente macho-macho | ~12 |
| Cable USB | 1 |
Conexiones

| Componente | Pin del componente | Pin de Arduino |
|---|---|---|
| HC-SR04 | VCC | 5V |
| HC-SR04 | Trig | D9 |
| HC-SR04 | Echo | D10 |
| HC-SR04 | GND | GND |
| Zumbador | + (pata larga) | D8 |
| Zumbador | – | GND |
| LED verde | Pata larga (a través de 220 Ω) | D5 |
| LED amarillo | Pata larga (a través de 220 Ω) | D6 |
| LED rojo | Pata larga (a través de 220 Ω) | D7 |
| LED | Patas cortas | GND |
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
- Coloca el sensor. Pon el HC-SR04 en el borde de la protoboard con sus “ojos” mirando hacia fuera.
- 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 –.
- Conecta el sensor. Conecta VCC a la línea +, GND a la línea –, Trig a D9 y Echo a D10.
- 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 –.
- Conecta el zumbador. Conecta su pata larga a D8 y su pata corta a la línea –.
- 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.
- 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 detone(). - 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.

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