0% encontró este documento útil (0 votos)
34 vistas2 páginas

Control de semáforo con Arduino

.

Cargado por

mauropg106
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 TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
34 vistas2 páginas

Control de semáforo con Arduino

.

Cargado por

mauropg106
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 TXT, PDF, TXT o lee en línea desde Scribd

// Declaración de pines

const int botonStar = 1;


const int vehicularVerde = 2;
const int vehicularAmarillo = 3;
const int vehicularRojo = 4;
const int peatonalVerde = 5;
const int peatonalRojo = 6;
const int botonStop = 7;

// Variables para estados de los botones


int estadoBotonStar = LOW;
int estadoBotonStop = LOW;
bool semaforoEncendido = false;

void setup() {
// Configuración de pines
pinMode(botonStar, INPUT);
pinMode(vehicularVerde, OUTPUT);
pinMode(vehicularAmarillo, OUTPUT);
pinMode(vehicularRojo, OUTPUT);
pinMode(peatonalVerde, OUTPUT);
pinMode(peatonalRojo, OUTPUT);
pinMode(botonStop, INPUT);

// Inicializar semáforo apagado (vehicular rojo, peatonal verde)


digitalWrite(vehicularVerde, LOW);
digitalWrite(vehicularAmarillo, LOW);
digitalWrite(vehicularRojo, HIGH);
digitalWrite(peatonalVerde, LOW);
digitalWrite(peatonalRojo, HIGH);
}

void loop() {
// Leer el estado de los botones
estadoBotonStar = digitalRead(botonStar);
estadoBotonStop = digitalRead(botonStop);

// Si se presiona el botón de inicio y el semáforo está apagado


if (estadoBotonStar == HIGH && !semaforoEncendido) {
semaforoEncendido = true; // Activar el ciclo del semáforo
}

// Si se presiona el botón de parada, apagar el semáforo


if (estadoBotonStop == HIGH && semaforoEncendido) {
apagarSemaforo();
semaforoEncendido = false;
}

// Si el semáforo está encendido, ejecutar el ciclo


if (semaforoEncendido) {
// Ciclo del semáforo
// Vehicular verde y peatonal rojo por 5 segundos
digitalWrite(vehicularVerde, HIGH);
digitalWrite(peatonalRojo, HIGH);
delay(5000);

// Apagar vehicular verde y encender vehicular amarillo por 2 segundos


digitalWrite(vehicularVerde, LOW);
digitalWrite(vehicularAmarillo, HIGH);
delay(2000);

// Apagar vehicular amarillo y encender vehicular rojo y peatonal verde por 5


segundos
digitalWrite(vehicularAmarillo, LOW);
digitalWrite(vehicularRojo, HIGH);
digitalWrite(peatonalRojo, LOW);
digitalWrite(peatonalVerde, HIGH);
delay(5000);

// Reiniciar al estado inicial


digitalWrite(vehicularRojo, LOW);
digitalWrite(peatonalVerde, LOW);
semaforoEncendido = false;
}
}

void apagarSemaforo() {
// Apagar todas las luces
digitalWrite(vehicularVerde, LOW);
digitalWrite(vehicularAmarillo, LOW);
digitalWrite(vehicularRojo, LOW);
digitalWrite(peatonalVerde, LOW);
digitalWrite(peatonalRojo, LOW);
}

También podría gustarte