//V : relai LED Verte
//R : relai LED Rouge
//J1 : relai LED Jaune1
//J2 : relai LED Jaune2
//F : émeteur feux faut depart
//S : relai cellule faut depart
//D : recepteur telecomande test
//A : recepteur telecomande depart
//I : interrupteur Training / Comp
//C : Cellule
//////////////////////////////PROG//////////////////////////
// C++ code
//
const int F = 12;
const int R = 11;
const int J2 = 10;
const int J1 = 9;
const int V = 8;
const int S = 7;
const int C = 5;
const int I = 4;
const int D = 3;
const int A = 2;
void setup()
{
Serial.begin(9600);
pinMode(V, OUTPUT);
pinMode(J2, OUTPUT);
pinMode(J1, OUTPUT);
pinMode(F, OUTPUT);
pinMode(R, OUTPUT);
pinMode(S, OUTPUT);
pinMode(C, INPUT_PULLUP);
pinMode(I, INPUT_PULLUP);
pinMode(D, INPUT_PULLUP);
pinMode(A, INPUT_PULLUP);
digitalWrite(S, LOW);
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(200);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
delay(200);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(200);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
delay(200);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(200);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
delay(200);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(200);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
delay(200);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(200);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
delay(200);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(2000);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
}
//comp//
void depart_comp()
{
Serial.println("Départ comp");
if (digitalRead(C) != LOW)
{
delay(500);
digitalWrite(S, HIGH);
digitalWrite(J1, LOW);
delay(1000);
digitalWrite(J2, LOW);
delay(1000);
digitalWrite(V, LOW);
digitalWrite(S, LOW);
delay(250);
if (digitalRead(C) == LOW)
{
delay(1750);
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
return;
}
else
{
delay(250);
if (digitalRead(C) == LOW)
{
delay(1500);
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
return;
}
else
{
delay(250);
if (digitalRead(C) == LOW)
{
delay(1250);
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
return;
}
else
{
delay(250);
if (digitalRead(C) == LOW)
{
delay(1000);
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
return;
}
else
{
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(2000);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
}
}
}
}
}
}
//trainig//
void depart_training()
{
Serial.println("Départ training");
delay(500);
digitalWrite(J1, LOW);
delay(1000);
digitalWrite(J2, LOW);
delay(1000);
digitalWrite(V, LOW);
delay(2000);
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
}
void loop()
{
//test//
if (digitalRead(D) == LOW)
{
digitalWrite(J1, LOW);
digitalWrite(J2, LOW);
digitalWrite(V, LOW);
digitalWrite(R, LOW);
digitalWrite(F, HIGH);
delay(500);
digitalWrite(J1, HIGH);
digitalWrite(J2, HIGH);
digitalWrite(V, HIGH);
digitalWrite(R, HIGH);
digitalWrite(F, LOW);
}
if (digitalRead(I) == LOW)
{
if (!digitalRead(A))
{
depart_comp();
while (!digitalRead(A)) {}
}
}
else
{
if (!digitalRead(A))
{
depart_training();
while (!digitalRead(A)) {}
}
}
}