⭐⭐⭐ Reto ⏱️ 30 minutos

Barrera automática

¡La versión inteligente de la barrera! El sensor de distancia ve que viene un coche. Entonces el zumbador pita y la barrera se abre sola. ¿El coche se ha ido? Entonces se vuelve a cerrar.

Primero inicias sesión un momento. Después tu proyecto está listo enseguida.

🧰 ¿Qué necesitas?

🗺️ Esquema de conexión

Sigue los cables desde el Arduino hasta cada pieza. Puedes elegir tú los colores de los cables.

Desde Hasta
Arduino UNO · D9 Sensor de distancia HC-SR04 · Trig
Arduino UNO · D10 Sensor de distancia HC-SR04 · Echo
Arduino UNO · 5V Sensor de distancia HC-SR04 · Vcc
Arduino UNO · GND Sensor de distancia HC-SR04 · Gnd
Arduino UNO · D5 Servomotor SG90 · PWM
Arduino UNO · 5V Servomotor SG90 · VCC
Arduino UNO · GND Servomotor SG90 · GND
Arduino UNO · D8 Zumbador activo · S
Arduino UNO · 5V Zumbador activo · +
Arduino UNO · GND Zumbador activo · -

🛠️ Así lo construyes

  1. Conecta el HC-SR04: Trig al pin 9, Echo al pin 10, Vcc a 5V y Gnd a GND.
  2. Conecta el servo: naranja al pin 5, rojo a 5V y marrón a GND.
  3. Conecta el zumbador: S al pin 8, + a 5V y − a GND.
  4. Pega una pajita o un palito de helado al servo como barrera y pon el sensor delante.

💻 El código

// Barrera automática
// ¿Viene un coche (a menos de 15 cm)? Entonces el zumbador pita y la barrera se abre.

#include <Servo.h>

const int TRIG_PIN = 9;       // Trig del HC-SR04 en pin 9
const int ECHO_PIN = 10;      // Echo del HC-SR04 en pin 10
const int SERVO_PIN = 5;      // Cable naranja/amarillo del servo en pin 5
const int ZUMBADOR_PIN = 8;   // S del zumbador en pin 8
const int CERCA = 15;         // Desde esta distancia (cm) se abre la barrera

const int CERRADO = 0;        // Ángulo cuando la barrera está cerrada
const int ABIERTO = 90;       // Ángulo cuando la barrera está abierta

Servo barrera;

long medirDistancia() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long tiempo = pulseIn(ECHO_PIN, HIGH, 30000);
  if (tiempo == 0) return 999;
  return tiempo / 58;
}

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(ZUMBADOR_PIN, OUTPUT);
  barrera.attach(SERVO_PIN);
  barrera.write(CERRADO);
}

void loop() {
  long distancia = medirDistancia();

  if (distancia < CERCA) {
    Serial.println(F("¡Coche visto! Barrera abierta."));
    digitalWrite(ZUMBADOR_PIN, HIGH);   // Pitido corto
    delay(100);
    digitalWrite(ZUMBADOR_PIN, LOW);

    barrera.write(ABIERTO);
    delay(1000);
    // Quedarse abierta mientras el coche siga ahí
    while (medirDistancia() < CERCA) {
      delay(200);
    }
    delay(2000);                      // Esperar un poco más hasta que el coche se vaya
    barrera.write(CERRADO);
    Serial.println(F("Barrera cerrada."));
  }
  delay(100);
}

🧠 ¿Qué hace el código?

  • El HC-SR04 mide la distancia todo el tiempo. ¿Menos de 15 cm? Entonces hay un coche.
  • El zumbador pita un momento y el servo gira a 90 grados: abierto.
  • Mientras el coche está allí, la barrera queda abierta. Luego esperamos 2 segundos y se cierra.

🎯 Prueba esto…

  • Cuenta cuántos coches han pasado y muéstralo en el monitor serie
  • Añade un LED rojo y uno verde como semáforo junto a la barrera
  • Haz que la barrera solo se abra si también se pulsa un botón

🚀 Construye este proyecto con Codey: abre codey.online/es/starter-kits/uno/projects/automatic-barrier y haz clic en HAZ ESTO. Entonces el código y el esquema de conexión estarán listos enseguida.

Primero inicias sesión un momento. Después tu proyecto está listo enseguida.
⬇️ Descarga esta página como PDF 📚 Descarga el tutorial completo (PDF)

Codey Online es un producto de OTRONIC

Crea tu proyecto de Arduino o ESP32 con IA

Describe lo que quieres construir. Codey Online escribe el codigo, dibuja el esquema de conexiones, lo compila y graba tu placa directamente desde el navegador.

Empieza gratis