Este es un circuito básico para un semáforo para coches y peatones utilizando Arduino. Este circuito usa LED para representar los semáforos, pero podrías adaptarlo para usar luces reales si lo deseas.
Placa Arduino (por ejemplo, Arduino Uno)
2 LED rojos (para semáforo de coches)
2 LED amarillos (para semáforo de coches)
2 LED verdes (para semáforo de coches)
1 LED rojo (para semáforo de peatones)
1 LED verde (para semáforo de peatones)
1 pulsador (para que los peatones soliciten el cruce)
Resistencias de 220 ohmios para los LED
Protoboard y cables de conexión
Semaforo de coches:
Pin 2: LED rojo
Pin 3: LED amarillo
Pin 4: LED verde
Semaforo de peatones:
Pin 5: LED rojo
Pin 6: LED verde
Pulsador:
Pin 7: Conectado al pulsador
// Definición de pines
const int rojoCoches = 2;
const int amarilloCoches = 3;
const int verdeCoches = 4;
const int rojoPeatones = 5;
const int verdePeatones = 6;
const int pulsador = 7;
// Definición de tiempos
const int tiempoVerdeCoches = 10000; // 10 segundos
const int tiempoAmarilloCoches = 3000; // 3 segundos
const int tiempoVerdePeatones = 10000; // 10 segundos
const int tiempoRojoPeatones = 3000; // 3 segundos
void setup() {
// Inicialización de pines
pinMode(rojoCoches, OUTPUT);
pinMode(amarilloCoches, OUTPUT);
pinMode(verdeCoches, OUTPUT);
pinMode(rojoPeatones, OUTPUT);
pinMode(verdePeatones, OUTPUT);
pinMode(pulsador, INPUT_PULLUP);
}
void loop() {
// Semáforo para coches
digitalWrite(verdeCoches, HIGH);
delay(tiempoVerdeCoches);
digitalWrite(verdeCoches, LOW);
digitalWrite(amarilloCoches, HIGH);
delay(tiempoAmarilloCoches);
digitalWrite(amarilloCoches, LOW);
digitalWrite(rojoCoches, HIGH);
delay(tiempoAmarilloCoches);
// Habilitar paso de peatones
digitalWrite(rojoPeatones, LOW);
digitalWrite(verdePeatones, HIGH);
// Esperar que el peatón presione el botón
while (digitalRead(pulsador) == HIGH) {
delay(100);
}
// Semáforo para peatones
digitalWrite(verdePeatones, LOW);
delay(1000); // Esperar un segundo para asegurar que los coches ven el cambio
digitalWrite(rojoCoches, LOW);
digitalWrite(verdeCoches, HIGH);
delay(1000); // Esperar un segundo para asegurar que los coches ven el cambio
digitalWrite(rojoPeatones, HIGH);
delay(tiempoRojoPeatones);
}
Este código hace que el semáforo para coches funcione durante 10 segundos en verde, luego 3 segundos en amarillo y otros 3 segundos en rojo. Luego, permite que los peatones crucen pulsando el botón conectado al pin 7. Una vez que los peatones presionan el botón, el semáforo de coches vuelve a estar verde y el semáforo de peatones se pone en verde durante 10 segundos antes de volver a rojo.
Asegúrate de seguir las medidas de seguridad necesarias cuando trabajes con componentes electrónicos y conexiones eléctricas. ¡Diviértete con tu proyecto de semáforo Arduino!
Recomendados:
Un día como hoy 27/04/2025
El Día Internacional del Diseño Gráfico conmemora las funciones esenciales del diseñador gráfico en la sociedad y el comercio, dando a conocer la importancia de esta profesión, así como su contribución para generar cambios significativos en todo el mundo y convertirla en una herramienta de valor social.