Sensor de distancia HC‑SR04 con LED, Buzzer y Pantalla OLED
📄 Descargar PDF del proyectoEn este proyecto medimos la distancia con el sensor ultrasónico HC‑SR04 y mostramos el resultado en una pantalla OLED. Además, activamos un LED y un buzzer según la distancia detectada. Es un proyecto intermedio, visual y muy práctico para aprender a combinar sensores, salidas y pantallas.
Material necesario
- Arduino UNO
- Sensor HC‑SR04
- Pantalla OLED 0.96" I2C (SSD1306)
- LED + resistencia 220Ω
- Buzzer activo
- Cables Dupont
- Breadboard
Esquema de conexión
Recuerda comprobar que la pantalla OLED usa la dirección I2C 0x3C, que es la más común.
Código Arduino
#include
#include
#define TRIG 9
#define ECHO 10
#define LED 3
#define BUZZER 4
Adafruit_SSD1306 display(128, 64, &Wire);
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("Error OLED");
while (true);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
}
long medirDistancia() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long duracion = pulseIn(ECHO, HIGH);
long distancia = duracion * 0.034 / 2;
return distancia;
}
void loop() {
long distancia = medirDistancia();
display.clearDisplay();
display.setCursor(0, 0);
display.print("Distancia: ");
display.print(distancia);
display.println(" cm");
int barra = map(distancia, 0, 50, 128, 0);
barra = constrain(barra, 0, 128);
display.fillRect(0, 20, barra, 10, WHITE);
if (distancia > 30) {
display.setCursor(0, 40);
display.print("Estado: LIBRE");
digitalWrite(LED, LOW);
digitalWrite(BUZZER, LOW);
}
else if (distancia > 15) {
display.setCursor(0, 40);
display.print("Estado: CERCA");
digitalWrite(LED, HIGH);
tone(BUZZER, 1000, 100);
}
else if (distancia > 5) {
display.setCursor(0, 40);
display.print("Estado: PELIGRO");
digitalWrite(LED, HIGH);
tone(BUZZER, 2000, 200);
}
else {
display.setCursor(0, 40);
display.print("Estado: CRITICO");
digitalWrite(LED, HIGH);
tone(BUZZER, 3000);
}
display.display();
delay(100);
}
Paso a paso
1. Instala las librerías necesarias
Desde el gestor de librerías instala Adafruit SSD1306 y Adafruit GFX Library.
2. Realiza las conexiones
Conecta el HC‑SR04, la pantalla OLED, el LED y el buzzer según el esquema.
3. Sube el código
Comprueba que la pantalla responde y que las alertas funcionan según la distancia.
⚡ Consejo: si la pantalla no muestra nada, revisa la dirección I2C (0x3C o 0x3D).