Skip to content

Instantly share code, notes, and snippets.

@davidae1704
Created July 1, 2014 03:22
Show Gist options
  • Save davidae1704/66d4fd52211735684358 to your computer and use it in GitHub Desktop.
Save davidae1704/66d4fd52211735684358 to your computer and use it in GitHub Desktop.
codigo para poner en el arduino para el control del semaforo de control de tiempo para la iglesia Mies, con dos modos de operación: prueba y funcionamiento normal.
#define verde 4
#define amarillo 5
#define rojo 6
#define azul 7
#define control 8
//variable para lectura del control de funcionamiento
int estado=0;
byte var=0;
void setup() {
// pines a usar para el semaforo
pinMode(verde, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(azul, OUTPUT);
pinMode(control, INPUT);
}
void loop() {
// funcionamiento del semaforo
estado=digitalRead(control);
//verificando condiciones de control
if(estado==HIGH){
//Luz verde por 30 minutos
digitalWrite(verde, HIGH);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, LOW);
digitalWrite(azul, LOW);
/*bucle FOR para el conteo de los 30 minutos en los cuales
la luz verde esta activa*/
for(int i=0; i<180; i++){
delay(10000);
}
//Luz amarilla por 10 minutos
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH);
digitalWrite(rojo, LOW);
digitalWrite(azul, LOW);
/* bucle FOR para el conteo de los 10 minutos en los cuales
la luz amarilla esta activa*/
for(int i=0; i<60; i++){
delay(10000);
}
//Luz roja por 5 minutos
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, HIGH);
digitalWrite(azul, LOW);
/* bucle FOR para el conteo de los 5 minutos en los cuales
la luz amarilla esta activa*/
for(int i=0; i<30; i++){
delay(10000);
}
/*Luz azul intermitente por 45 minutos
funciona dentro del bucle para generar el parpadeo de la
luz azul*/
for(int i=0; i<5400; i++){
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, LOW);
digitalWrite(azul, !var);
delay(500);
}
}
//modo de prueba
else{
digitalWrite(verde, HIGH);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, LOW);
digitalWrite(azul, LOW);
delay(10000);
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH);
digitalWrite(rojo, LOW);
digitalWrite(azul, LOW);
delay(5000);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, HIGH);
digitalWrite(azul, LOW);
delay(2000);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, LOW);
digitalWrite(azul, HIGH);
delay(30000);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment