Paso 4: Fije el ARDUINO
Tomar un alambre para fijar la placa positiva a la toma de ground.and de pin ARDUINO otro alambre para fijar ARDUINO 3.3V para protoboard positive.as se muestra la imagen.
PROGRAMA DE ARDUINO.
Luces de tráfico
Por Ben Hovinga http://ben.hovinga.me
Y luces {verde, amarillo, rojo, PEDGREEN, PEDRED}
int luz [2] [5] = {{2,3,4,6,7}, {8,9,10,12,13}};
Botones {luz [0], [1]}
int btn [] = {5,11};
Contadores de tiempo
tgreen int = 30000; 30s
int tyellow = 3000; 3S
int tred = 3000; 3S
int tpedwarn = 5000; 5S (debe ser menor que tgreen)
int tpedwarnint = 500; 0.5s (debe ser menor que tpedwarn)
Otro Vals. No cambie
int btnval = 0;
Boolean pedwait [] = {false, false};
Boolean pedactive [] = {false, false};
directa de int = 0;
int stp = 1;
Boolean stpset = false;
sin firmar largo ahora = 0;
changeat largo sin signo = -1;
changeatped largo sin signo = -1;
Boolean pedredon = true;
PROGRAMA DE INSTALACIÓN
void setup() {}
Asignar todos los pines
para (int x = 0; x < 2; x ++) {}
para (int y = 0 y < 5; y ++) {}
pinMode (luz [x] [y], salida);
}
Empezar todo parado (rojo)
digitalWrite (luz [x] [2], HIGH);
digitalWrite (luz [x] [4], HIGH);
}
Asignar botones
para (int x = 0; x < 2; x ++) {}
pinMode (btn [x], entrada);
}
}
EJECUTAR
void loop() {}
Tiempo de actualización
ahora = millis();
Verifica si presiona el botón
para (int x = 0; x < 2; x ++) {}
btnval = digitalRead(btn[x]);
Si (btnval == HIGH) {}
pedwait [x] = true; Tenemos a alguien esperando para cruzar
}
}
Entrar en ella
interruptor (stp) {}
Verde
caso 1:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tgreen - tpedwarn; Sistema temporizador
Encender Ped
Si (pedwait [directo a] == true) {}
Cambian de luces para ped
digitalWrite (luz [directo] [3], HIGH);
digitalWrite (luz [directo] [4], LOW);
Establecer algunos vars
pedwait [directo a] = false;
pedactive [directo a] = true;
pedredon = false;
}
Abra verde
digitalWrite (luz [directo] [0], HIGH);
Apagar Red
digitalWrite (luz [directo] [2], LOW);
stpset = true; Somos configuración
}
Ejecutar
Else {}
Si (ahora > changeat) {/ / horas hasta
Si (pedactive [directo a] == true) {}
Apague el Ped
digitalWrite (luz [directo] [3], LOW);
digitalWrite (luz [directo] [4], HIGH);
pedredon = true;
}
Siguiente paso
STP ++;
stpset = false;
}
}
rotura;
Advierten ped (si es posible)
caso 2:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tpedwarn;
changeatped = ahora + tpedwarnint;
stpset = true;
}
Ejecutar
Else {}
Flash rojo Ped
Si (pedactive [directo a] == true) {}
Si (pedredon == true & & changeatped < ahora) {}
digitalWrite (luz [directo] [4], LOW);
pedredon = false;
changeatped = ahora + tpedwarnint;
}
Si (pedredon == false & & changeatped < ahora) {}
digitalWrite (luz [directo] [4], HIGH);
pedredon = true;
changeatped = ahora + tpedwarnint;
}
}
Si (ahora > changeat) {/ / horas hasta
Apaga
digitalWrite (luz [directo] [0], LOW);
digitalWrite (luz [directo] [4], HIGH);
pedredon = true;
pedactive [directo a] = false;
Siguiente paso
STP ++;
stpset = false;
}
}
rotura;
Amarillo
caso 3:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tyellow;
digitalWrite (luz [directo] [1], HIGH);
stpset = true;
}
Ejecutar
Else {}
Si (ahora > changeat) {/ / horas hasta
Apaga
digitalWrite (luz [directo] [1], LOW);
Siguiente paso
STP ++;
stpset = false;
}
}
rotura;
Rojo
caso 4:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tred;
digitalWrite (luz [directo] [2], HIGH);
stpset = true;
}
Ejecutar
Else {}
Si (ahora > changeat) {/ / horas hasta
Volver a empezar
STP = 1;
stpset = false;
Cambio de sentido
Si (directo == 1) {}
directa = 0;
}
Else {}
directo = 1;
}
}
}
rotura;
}
}