Saturday, 7 February 2026

PROYECTO - BARRERA PARKING o similar

Este es un proyecto clásico de Arduino para automatizar una barrera de estacionamiento (parking). Utiliza un sensor ultrasónico (HC-SR04) para detectar la presencia de un coche, un servomotor para mover la barrera, y dos LEDs (verde y rojo) para indicar el estado (libre/abierto o cerrado). 


1. Componentes Necesarios

  • Tarjeta controladora Arduino Uno (o compatible).
  • Sensor Ultrasónico HC-SR04.
  • Servomotor SG90 (Micro Servo).
  • LED Verde y LED Rojo.
  • 2 Resistencias de 220 o 330 ohmios.
  • Protoboard y cables de conexión. 

2. Conexiones (Esquema)

HC-SR04: VCC a 5V, GND a GND, Trig al Pin 10, Echo al Pin 9.

Servo: Cable marrón/negro a GND, rojo a 5V, naranja/amarillo a Pin 11.

LED Verde: Ánodo (+) al Pin 12, Cátodo (-) a GND (con resistencia).

LED Rojo: Ánodo (+) al Pin 13, Cátodo (-) a GND (con resistencia).

3.1. Código Arduino - Bloques con Tinkercad

opción A
opción B


3.2. Código IDE Arduino 

(Copiar, pegar en IDE y completar) >> ver opciones(fotocopia)

***

#include <Servo.h>

// Definición de Pines
const int trigPin = ;
const int echoPin = ;
const int servoPin = ;
const int ledVerde = ;
const int ledRojo = ;

// Variables
Servo myServo;
long duracion;
int distancia;
int distanciaSeguridad = 20; // Distancia en cm para detectar coche

void setup() {
  pinMode(trigPin, );
  pinMode(echoPin, );
  pinMode(ledVerde, );
  pinMode(ledRojo, );
 
  myServo.attach(servoPin);
 
  // Barrera cerrada inicialmente (0 grados)
  myServo.write(0);
  Serial.begin(9600); //*opcional
}

void loop() {
  // Medir distancia con sensor ultrasónico
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  duracion = pulseIn(echoPin, HIGH);
  distancia = duracion * 0.034 / 2;
 
  Serial.print("Distancia: "); //*opcional
  Serial.println(distancia);

  // Lógica de la barrera
  if (distancia > 0 && distancia <= distanciaSeguridad) {
    // Coche detectado: Abrir barrera
    digitalWrite(ledVerde, ); // Luz verde encendida
    digitalWrite(ledRojo, );   // Luz roja apagada
    myServo.write();            // Mueve servo a 90 grados
    delay(3000);                  // Espera 3 segundos para que pase
  }
  else {
    // No hay coche: Cerrar barrera
    digitalWrite(ledVerde, );  // Luz verde apagada
    digitalWrite(ledRojo, );  // Luz roja encendida
    myServo.write();             // Mueve servo a 0 grados
  }
 
  delay(100); // Pequeña pausa para estabilidad
}

***

4. Funcionamiento

Estado Inicial: La barrera está en 0 grados (cerrada) y el LED rojo está encendido.

Detección: El sensor envía una onda de sonido. Si el coche está a menos de distanciaSeguridad (20 cm), el código lo detecta.

Acción: El LED rojo se apaga, el verde se enciende y el servo gira a 90 grados (barrera sube).

Cierre: Tras 3 segundos (delay(3000)), el servo vuelve a 0 grados y se enciende el rojo nuevamente. 

 

5. DISEÑA CON TINKERCAD UNA MAQUETA PARA IMPRIMIR CON LA IMPRESORA 3D Y COMPRUEBA EL FUNCIONAMIENTO.




Enlaces de interés:

Simulación del circuito en Tinkercad: -::- Vídeo del circuito    -::- Vídeo del código de bloques

Proyecto master:  https://tecnovadores.blogspot.com/2020/02/parking-arduino.html