🔩Funcionamiento
El siguiente proyecto representa un fascinante punto de encuentro entre la electrónica, la programación y la física del sonido. Diseñaremos e implementaremos un sistema de alerta de proximidad que utiliza un sensor ultrasónico para medir distancias y una placa Arduino para interpretar esos datos y comunicarlos visualmente a través de un simple pero efectivo “semáforo” de tres colores: verde, naranja y rojo. Este sistema es ideal como asistente de estacionamiento, alarma de seguridad o simplemente como una excelente introducción al manejo de sensores con microcontroladores.
Para este proyecto usaremos los leds de la siguiente manera, uno rojo, uno naranja y uno verde, el led verde se encenderá cuando un objeto esté a una distancia entre 20 y 40 cm, el led naranja se encenderá, cuando el objeto esté entre 10 y 20 cm, y el led rojo se encenderá, cuando el objeto este, entre 0 y 10 cm.
🔬 Fundamentos Físicos y Electrónicos del Sistema
Para comprender la magia de este proyecto, es esencial detallar el funcionamiento de sus dos componentes principales.
El Corazón Acústico: El Módulo Ultrasónico HC-SR04
El HC-SR04 no es un simple sensor, sino un transductor que opera con un principio milenario: la ecolocalización, similar a la utilizada por murciélagos y delfines.
Principio de Medición: Tiempo de Vuelo (Time of Flight – TOF)
El HC-SR04 consta de dos “ojos” o cápsulas:
- Transmisor: Envía un tren de ocho pulsos de sonido a 40 kHz, una frecuencia inaudible para el oído humano (ultrasonido).
- Receptor: Escucha el eco que rebota en el objeto.
El proceso de medición es un ciclo de tres etapas orquestado por Arduino:
- Disparo (Trig): Arduino envía un pulso de 10 μs al pin Trig del sensor, activando la emisión de ultrasonido.
- Cronometraje (Echo): El pin Echo se pone en ALTO (HIGH) justo al emitirse el pulso y permanece así hasta que el eco regresa y es detectado. La duración de este pulso HIGH es el Tiempo de Vuelo Total (ida y vuelta).
- Cálculo: La distancia se determina al aplicar la fórmula fundamental de la física: Distancia=Velocidad×Tiempo.
La Velocidad del Sonido (vs) a 20∘C es de aproximadamente 343 m/s (0.0343 cm/μs). Dado que el tiempo medido es para el recorrido de ida y vuelta, se debe dividir por dos. El código de Arduino utiliza una simplificación robusta y práctica:
Distancia (cm) ≈ Duración del Pulso Echo (μs) / 58
Este factor de 58 es la constante de conversión que transforma el tiempo de microsegundos a distancia en centímetros, una conveniencia que facilita la programación.
El Cerebro de Control: Arduino
El microcontrolador Arduino Uno actúa como el director de orquesta. Es responsable de:
- Generar el pulso de disparo para el HC-SR04.
- Medir con precisión milimétrica la duración del pulso de eco.
- Ejecutar la lógica condicional que asocia un rango de distancia a un estado visual.
🔨Componentes
| Componente | Cantidad | Especificación | Función |
|---|---|---|---|
| Placa Arduino | 1 | Arduino Uno, Nano, etc | Control de componentes(cerebro) |
| Sensor ultrasónico | 1 | HC-04 | Calcular la distancia de un objeto |
| Resistencias | 3 | (230 Ω) x3 | Limitar flujo de corriente |
| Leds | 3 | (rojo, naranja y verde) | Señal de acercamiento |
| Cables de conexión | n | Unir los componentes | |
| Fuente de Alimentación | 1 | 5v | Suministro de energía |
🔌Conexiones
Conecta el sensor HC-04:
- VCC a 5V de Arduino
- GND a GND de Arduino
- TRIG a pin 10 de Arduino
- ECHO a pin 9 de Arduino
Conecta los LEDs:
- Rojo: pin 7 de Arduino
- Naranja: pin 5 de Arduino
- Verde: pin 3 de Arduino
- Resistencias en serie con cada LED
0️⃣Código
int TRIG = 10; int ECO = 9; int LED1 = 3; //Led Verde int LED2 = 5; //Led Naranja int LED3 = 7; //Led Rojo int DURATION; int LENGHT; void setup(){ Serial.begin(9600); pinMode(TRIG, OUTPUT); pinMode(ECO, OUTPUT); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); } void loop(){ digitalWrite(TRIG, HIGH); delay(1); digitalWrite(TRIG, LOW); DURATION = pulseIn(ECO, HIGH); LENGHT = DURATION / 59; Serial.print(LENGHT); delay(200); if(LENGHT >= 20 && LENGHT <= 40){ delay(50); digitalWrite(LED3, HIGH); delay(50); digitalWrite(LED2, LOW); delay(50); digitalWrite(LED1, LOW); } else if (LENGHT >= 10 && LENGHT < 20){ delay(50); digitalWrite(LED3, LOW); delay(50); digitalWrite(LED2, HIGH); delay(50); digitalWrite(LED1, LOW); } else if (LENGHT >= 0 && LENGHT < 10) { delay(50); digitalWrite(LED3, LOW); delay(50); digitalWrite(LED2, LOW); delay(50); digitalWrite(LED1, HIGH); } else{ delay(50); digitalWrite(LED3, LOW); delay(50); digitalWrite(LED2, LOW); delay(50); digitalWrite(LED1, LOW); }
🖌️Diseños


🎬Videos
📑Conclusión
El proyecto del semáforo de proximidad es una demostración práctica y efectiva de cómo la electrónica, la programación y la física del sonido se integran en un sistema de detección funcional.
La implementación exitosa se basa en la capacidad del sensor HC-SR04 para traducir la distancia física en una variable de tiempo de vuelo (TOF), medida con precisión por el microcontrolador Arduino. El núcleo del sistema reside en la lógica condicional (if-else) programada en el Arduino, que transforma los datos numéricos de la distancia en una señal visual intuitiva mediante un sistema de tres colores.
Logros Clave:
- Detección Precisa: Se utiliza la fórmula física (simplificada a tiempo/58) para calcular la distancia en centímetros de forma confiable.
- Traducción Visual: Se establecen tres umbrales de alerta bien definidos:
- Verde (Seguridad): Objeto entre 20 cm y 40 cm.
- Naranja (Advertencia): Objeto entre 10 cm y 20 cm.
- Rojo (Peligro): Objeto entre 0 cm y 10 cm.
- Sistema Excluyente: La estructura de control garantiza que solo uno de los LEDs se encienda a la vez, proporcionando una indicación clara y sin ambigüedades sobre el nivel de proximidad.

