0% encontró este documento útil (0 votos)
101 vistas3 páginas

Control de Semáforo con Arduino

Este documento describe un semáforo controlado por Arduino. Define los pines de entrada y salida para los botones y luces del semáforo. Establece los tiempos de cambio y flujo de tráfico. El programa cambia el estado de las luces del semáforo entre verde, amarillo y rojo dependiendo de si se presiona el botón este u oeste para solicitar el flujo de tráfico en esa dirección.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
101 vistas3 páginas

Control de Semáforo con Arduino

Este documento describe un semáforo controlado por Arduino. Define los pines de entrada y salida para los botones y luces del semáforo. Establece los tiempos de cambio y flujo de tráfico. El programa cambia el estado de las luces del semáforo entre verde, amarillo y rojo dependiendo de si se presiona el botón este u oeste para solicitar el flujo de tráfico en esa dirección.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

// Semáforo Arduino

// define los pines a los que se conectan los botones y las luces:
#define westButton 3
#define eastButton 13
#define westRed 2
#define westYellow 1
#define westGreen 0
#define eastRed 12
#define eastYellow 11
#define eastGreen 10
#define yellowBlinkTime 500 // 0.5 segundos para que la luz amarilla parpadee
booleano trafficWest = verdadero; // oeste = verdadero, este = falso
int flowTime = 10000; // cantidad de tiempo para permitir el flujo de tráfico
int changeDelay = 2000; // cantidad de tiempo entre los cambios de color
Configuración de vacío ()
{
// configurar pines de E / S digitales
pinMode (westButton, INPUT);
pinMode (eastButton, INPUT);
pinMode (westRed, OUTPUT);
pinMode (westYellow, OUTPUT);
pinMode (westGreen, OUTPUT);
pinMode (eastRed, OUTPUT);
pinMode (eastYellow, OUTPUT);
pinMode (eastGreen, OUTPUT);

// establece el estado inicial para las luces - el lado oeste es verde primero
digitalWrite (westRed, BAJO);
digitalWrite (westYellow, BAJO);
digitalWrite (westGreen, HIGH);
digitalWrite (eastRed, ALTO);
digitalWrite (eastYellow, LOW);
digitalWrite (eastGreen, LOW);
}
void loop ()
{
if (digitalRead (westButton) == HIGH) // solicita flujo de tráfico oeste> este
{
if (trafficWest! = true)
// solo continuará si el tráfico fluye en la dirección opuesta (este)
{
trafficWest = verdadero; // cambiar el indicador de flujo de tráfico hacia el oeste> este
retraso (tiempo de flujo); // dar tiempo para que el tráfico fluya
digitalWrite (eastGreen, LOW); // cambiar las luces orientadas hacia el este de verde
// a amarillo a rojo
digitalWrite (eastYellow, HIGH);
retraso (changeDelay);
digitalWrite (eastYellow, LOW);
digitalWrite (eastRed, ALTO);
retraso (changeDelay);
for (int a = 0; a <5; a ++) // luz amarilla parpadeante {digitalWrite (westYellow, LOW); retraso
(yellowBlinkTime); digitalWrite (westYellow, ALTO); retraso (yellowBlinkTime); } digitalWrite
(westYellow, LOW); digitalWrite (westRed, BAJO); // cambiar las luces orientadas al oeste de rojo a
verde digitalWrite (westGreen, HIGH); }} if (digitalRead (eastButton) == HIGH) // solicita flujo de
tráfico este> oeste
{
if (trafficWest == verdadero)
// solo continúa si el flujo de tráfico está en la dirección opuesta (oeste)
{
trafficWest = falso; // cambiar el indicador de flujo de tráfico a este> oeste
retraso (tiempo de flujo); // dar tiempo para que el tráfico fluya
digitalWrite (westGreen, LOW);
// cambiar las luces del oeste de verde a amarillo a rojo
digitalWrite (westYellow, ALTO);
retraso (changeDelay);
digitalWrite (westYellow, BAJO);
digitalWrite (westRed, ALTO);
retraso (changeDelay);
para (int a = 0; a <5; a ++) // luz amarilla intermitente
{
digitalWrite (eastYellow, LOW);
retraso (yellowBlinkTime);
digitalWrite (eastYellow, HIGH);
retraso (yellowBlinkTime);
}
digitalWrite (eastYellow, LOW);
digitalWrite (EastRed, BAJO); // cambiar las luces orientadas al este de rojo a verde
digitalWrite (eastGreen, HIGH);
}
}
}

También podría gustarte