Proyecto: Sensor de Distancia con Alarma Sonora usando Arduino
Introducción
Este proyecto consiste en un sistema de medición de distancia utilizando un sensor ultrasónico y un zumbador (buzzer) conectado a una placa Arduino. El objetivo principal es detectar objetos cercanos y emitir una alarma sonora cuya velocidad aumenta conforme el objeto se aproxima.
El sistema puede utilizarse en aplicaciones como:
- Sensores de estacionamiento.
- Alarmas de proximidad.
- Robots evitadores de obstáculos.
- Sistemas de asistencia para personas con discapacidad visual.
- Proyectos educativos de electrónica y programación.
El funcionamiento se basa en el envío de ondas ultrasónicas mediante el sensor HC-SR04. Cuando las ondas rebotan en un objeto, el sensor mide el tiempo que tardan en regresar y calcula la distancia. Dependiendo de esa distancia, el buzzer emite sonidos más rápidos o continuos.
Materiales Necesarios
| Material | Cantidad | Descripción |
|---|---|---|
| Arduino UNO | 1 | Microcontrolador principal del proyecto |
| Sensor ultrasónico HC-SR04 | 1 | Mide la distancia mediante ultrasonidos |
| Buzzer activo | 1 | Emite sonidos de alerta |
| Protoboard | 1 | Facilita las conexiones |
| Cables Dupont | Varios | Para realizar las conexiones |
| Cable USB | 1 | Alimentación y programación del Arduino |
| Ordenador con Arduino IDE | 1 | Para cargar el programa |
Descripción de los Componentes
1. Arduino UNO
La placa Arduino UNO es el cerebro del proyecto. Se encarga de:
- Leer los datos del sensor ultrasónico.
- Calcular la distancia.
- Controlar el buzzer según la proximidad del objeto.
Características principales:
- Microcontrolador ATmega328P.
- Alimentación por USB.
- Pines digitales y analógicos.
- Fácil programación mediante Arduino IDE.
2. Sensor Ultrasónico HC-SR04
El sensor HC-SR04 mide distancias usando ultrasonidos.
Funcionamiento:
- Envía una onda ultrasónica.
- La onda rebota en un objeto.
- El sensor mide el tiempo de retorno.
- Arduino calcula la distancia.
Pines del sensor:
- VCC → Alimentación 5V.
- GND → Tierra.
- TRIG → Envía la señal ultrasónica.
- ECHO → Recibe la señal reflejada.
Rango aproximado:
- 2 cm a 400 cm.
3. Buzzer
El buzzer genera sonidos cuando un objeto se acerca.
Comportamiento:
- Lejos → Sin sonido.
- Cerca → Pitidos lentos.
- Muy cerca → Pitidos rápidos.
- Extremadamente cerca → Sonido continuo.
Funcionamiento del Sistema
El programa mide continuamente la distancia detectada por el sensor ultrasónico.
Comportamiento según la distancia
| Distancia | Acción |
|---|---|
| Mayor de 35 cm | Buzzer apagado |
| Entre 6 y 35 cm | Pitidos intermitentes |
| Menor de 6 cm | Sonido continuo |
La frecuencia del pitido aumenta conforme el objeto se acerca.
Diagrama de Conexiones
Conexiones del Sensor HC-SR04
| HC-SR04 | Arduino UNO |
|---|---|
| VCC | 5V |
| GND | GND |
| TRIG | Pin 3 |
| ECHO | Pin 2 |
Conexiones del Buzzer
| Buzzer | Arduino UNO |
|---|---|
| Positivo (+) | Pin 9 |
| Negativo (-) | GND |
Esquema Simplificado
+-------------------+
| Arduino UNO |
| |
| 5V ------------ VCC (HC-SR04)
| GND ------------ GND (HC-SR04)
| Pin 3 ---------- TRIG
| Pin 2 ---------- ECHO
| Pin 9 ---------- (+) Buzzer
| GND ------------ (-) Buzzer
+-------------------+
Explicación del Código
Definición de Pines
#define echoPin 2
#define trigPin 3
#define buzzer 9
Se asignan los pines del sensor y del buzzer.
Variables
long duration;
int distance;
int delayVal;
duration: tiempo de retorno del ultrasonido.distance: distancia calculada.delayVal: velocidad de los pitidos.
Configuración Inicial
void setup() {
pinMode(buzzer, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
Se configuran:
- El buzzer como salida.
- El pin TRIG como salida.
- El pin ECHO como entrada.
- Comunicación serial para monitoreo.
Medición de Distancia
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
El sensor envía un pulso ultrasónico.
Cálculo de Distancia
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Se calcula la distancia usando la velocidad del sonido.
d=v⋅t2d=\frac{v\cdot t}{2}d=2v⋅t
Donde:
- ddd = distancia.
- vvv = velocidad del sonido.
- ttt = tiempo medido.
Control del Buzzer
if(distance < 36 && distance > 5)
Si el objeto está cerca:
- El buzzer emite pitidos.
- Mientras menor sea la distancia, más rápidos serán.
else if(distance < 6)
Si el objeto está muy cerca:
- Sonido continuo.
else if(distance > 35)
Si el objeto está lejos:
- Buzzer apagado.
Código Completo
#define echoPin 2
#define trigPin 3
#define buzzer 9
long duration;
int distance;
int delayVal;
void setup() {
pinMode(buzzer, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
if(distance < 36 && distance > 5){
delayVal = map(distance, 6, 35, 20, 400);
Serial.println(map(distance, 6, 35, 20, 400));
digitalWrite(buzzer, HIGH);
delay(delayVal);
digitalWrite(buzzer, LOW);
delay(delayVal);
} else if(distance < 6){
digitalWrite(buzzer, HIGH);
} else if(distance > 35){
digitalWrite(buzzer, LOW);
}
}
Pantallazo del Software
Puedes incluir una captura de pantalla del programa en Arduino IDE mostrando:
- El código cargado.
- El monitor serial abierto.
- La placa Arduino conectada.
Ejemplo de lo que debe verse:
Arduino IDE
---------------------------------
| Código del proyecto |
| |
| #define echoPin 2 |
| #define trigPin 3 |
| ... |
| |
---------------------------------
Monitor Serial:
120
85
40
25
Mario Collado Pulido
Marcos Moreno López

