// FEUX voitures
#define GREEN1 32
#define ORANGE1 17
#define RED1 18
#define GREEN3 23
#define ORANGE3 21
#define RED3 19
// FEUX piétons
#define RED2 16
#define GREEN2 4
// SEGMENTS 7-Seg
int segPins[7] = {25, 26, 27, 14, 12, 33, 22};
const byte digits[10][7] = {
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1} // 9
};
void displayDigit(int num) {
for (int k = 0; k < 7; k++) {
digitalWrite(segPins[k], digits[num][k]);
}
}
void setup(){
pinMode(RED1, OUTPUT);
pinMode(ORANGE1, OUTPUT);
pinMode(GREEN1, OUTPUT);
pinMode(RED2, OUTPUT);
pinMode(GREEN2, OUTPUT);
pinMode(RED3, OUTPUT);
pinMode(ORANGE3, OUTPUT);
pinMode(GREEN3, OUTPUT);
for (int k = 0; k < 7; k++) {
pinMode(segPins[k], OUTPUT);
}
}
void countdown(int seconds) {
for (int i = seconds; i >= 0; i--) {
displayDigit(i);
delay(1000);
}
}
void loop(){
digitalWrite(RED1, HIGH);
digitalWrite(GREEN3, HIGH);
digitalWrite(GREEN2, HIGH);
countdown(9);
digitalWrite(RED1, LOW);
digitalWrite(GREEN3, LOW);
digitalWrite(GREEN2, LOW);
digitalWrite(ORANGE3, HIGH);
digitalWrite(ORANGE1, HIGH);
countdown(1);
digitalWrite(ORANGE3, LOW);
digitalWrite(ORANGE1, LOW);
digitalWrite(RED3, HIGH);
digitalWrite(GREEN1, HIGH);
digitalWrite(RED2, HIGH);
countdown(9);
digitalWrite(RED3, LOW);
digitalWrite(GREEN1, LOW);
digitalWrite(RED2, LOW);
digitalWrite(ORANGE3, HIGH);
digitalWrite(ORANGE1, HIGH);
countdown(1);
digitalWrite(ORANGE3, LOW);
digitalWrite(ORANGE1, LOW);
}