Radar Ultrasónico HC-SR04 con Arduino: Visualización en Tiempo Real con Servo y Processing
Componentes y materiales
| Arduino UNO | 1 |
| Sensor ultrasónico HC-SR04 (genérico) | 1 |
| Servomotor (estándar, ej. SG90 o MG996R) | 1 |
| Protoboard y cables jumper | 1 |
Sobre el proyecto
Este proyecto crea un radar visual que escanea 160° (de -80° a +80°) midiendo distancia con el HC-SR04 montado en un servo. El Arduino envía por puerto serie pares ángulo,distancia a una aplicación Processing que dibuja la traza en pantalla estilo radar (vista cenital).
Arduino: código del sensor y servo
Usa la librería NewPing para lecturas robustas y Servo.h para mover el servo. El barrido avanza en pasos de 1° y cambia de dirección al llegar a los límites.
#include <NewPing.h>
#include <Servo.h>
#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define MAX_DISTANCE 150 // cm
#define SERVO_PWM_PIN 9
#define ANGLE_BOUNDS 80
#define ANGLE_STEP 1
int angle = 0;
int dir = 1; // 1 = adelante, -1 = atrás
Servo myservo;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
myservo.attach(SERVO_PWM_PIN);
}
void loop() {
delay(50); // estabilidad servo
myservo.write(angle + ANGLE_BOUNDS); // convertir -80..80 a 0..160
getDistanceAndSend2Serial(angle);
if (angle >= ANGLE_BOUNDS || angle <= -ANGLE_BOUNDS) dir = -dir;
angle += dir * ANGLE_STEP;
}
int getDistanceAndSend2Serial(int angle) {
int cm = sonar.ping_cm();
Serial.print(angle); Serial.print(","); Serial.println(cm);
}
Processing: visualización radar
El sketch de Processing (Arduino_radar_client_processing.pde) lee el puerto serie, parsea los pares ángulo/distancia y dibuja:
- Línea de barrido rotando.
- Puntos de eco (distancia) en coordenadas polares.
- Promedio de dos pasadas (ida y vuelta) para reducir ruido.
Enlace al código completo en GitHub: faweiz/My-Arduino/arduino_radar
Esquema de conexiones
- HC-SR04: VCC → 5V, GND → GND, Trig → D2, Echo → D3.
- Servo: señal → D9, VCC → 5V (o fuente externa si el servo consume mucho), GND → GND.
- Alimentar servo desde Arduino solo si es pequeño (SG90); para servos mayores, use fuente externa 5V-6V con GND común.
Ver imagen del esquema en la sección Schematics.
Notas y mejoras
- El HC-SR04 tiene ángulo de haz ~15°; la resolución angular de 1° sobremuestrea.
- Para mayor precisión, promediar varias lecturas por ángulo.
- Processing requiere la librería
serial; seleccione el puerto COM correcto. - Este proyecto es base para mapeo 2D, detección de obstáculos en robots, etc.
Proceso de manufactura
- Construye un Spybot controlado por Bluetooth con Arduino
- FlickMote: Mando IR por gestos para Smart Home
- TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Soluciones de Alimentación Optimizadas para Proyectos Arduino
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
- Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
- Construye un volante joystick personalizado con Arduino para gaming
- Cálculo de ángulos de inclinación con MPU6050 y Arduino Nano usando Visuino