//AUTOMATISATION DES ANIMATIONS
const int Helicoptere = 3; // Utilisation du PWM
const int Relais_Benne = 9;
const int Relais_Soudeur = 10;
const int Relais_Toupie_Beton = 11;
const int Relais_Pelleteuse = 12;
const int Relais_Flash = 13;

const int Led_Temoin_Acceleration_M = 1;
const int Led_Temoin_Ralentissement_M = 2;
const int Led_Temoin_Benne = A0;
const int Led_Temoin_Soudeur = A1;
const int Led_Temoin_Toupie_Beton = A2;
const int Led_Temoin_Pelleteuse = A3;
const int Led_Temoin_Flash = A4;

int compteur1;
int compteur2;
int v; // Variable de vitesse Helice Helicoptere

void setup()
{
  pinMode (Helicoptere,OUTPUT); // Utilisation du PWM
  pinMode (Relais_Benne,OUTPUT);
  pinMode (Relais_Soudeur,OUTPUT); 
  pinMode (Relais_Toupie_Beton,OUTPUT);
  pinMode (Relais_Pelleteuse, OUTPUT);
  pinMode (Relais_Flash,OUTPUT);

  pinMode (Led_Temoin_Acceleration_M,OUTPUT);
  pinMode (Led_Temoin_Ralentissement_M,OUTPUT);
  pinMode (Led_Temoin_Benne,OUTPUT);
  pinMode (Led_Temoin_Soudeur,OUTPUT);
  pinMode (Led_Temoin_Toupie_Beton,OUTPUT);
  pinMode (Led_Temoin_Pelleteuse,OUTPUT);
  pinMode (Led_Temoin_Flash,OUTPUT);
  
  compteur1 = 0;
  compteur2 = 0;
  v = 0;

  analogWrite ( Helicoptere,0 );
  
  digitalWrite ( Relais_Benne,LOW );
  digitalWrite ( Relais_Soudeur,LOW );
  digitalWrite ( Relais_Toupie_Beton,LOW );
  digitalWrite ( Relais_Pelleteuse,LOW );
  digitalWrite ( Relais_Flash,LOW );
  
  digitalWrite ( Led_Temoin_Acceleration_M,LOW );
  digitalWrite ( Led_Temoin_Ralentissement_M,LOW );
  digitalWrite ( Led_Temoin_Benne,LOW );  
  digitalWrite ( Led_Temoin_Soudeur,LOW );
  digitalWrite ( Led_Temoin_Toupie_Beton,LOW );
  digitalWrite ( Led_Temoin_Pelleteuse,LOW );
  digitalWrite ( Led_Temoin_Flash,LOW ); 
}
void loop() 
{
  Pelleteuse();
}
void Toupie()
{
  compteur1 = compteur1 + 1;
  if ( compteur1 <= 3 )
  { digitalWrite ( Relais_Toupie_Beton,HIGH ); digitalWrite ( Led_Temoin_Toupie_Beton,HIGH ); }
  else
  { digitalWrite ( Relais_Toupie_Beton,LOW ); compteur1 = 0; digitalWrite ( Led_Temoin_Toupie_Beton,LOW ); }
}
void Pelleteuse()
{
  compteur2 = compteur2 + 1;
  if ( compteur2 <= 3 )
  { digitalWrite ( Relais_Pelleteuse,HIGH ); digitalWrite ( Led_Temoin_Pelleteuse,HIGH );}
  else
  { digitalWrite ( Relais_Pelleteuse,LOW ); compteur2 = 0; digitalWrite ( Led_Temoin_Pelleteuse,LOW );} 
}
void Flash_a()
{
  digitalWrite ( Led_Temoin_Flash,HIGH ); delay (500);
  digitalWrite ( Relais_Flash,HIGH ); delay (300);
  digitalWrite ( Relais_Flash,LOW ); delay (500);
  digitalWrite ( Led_Temoin_Flash,LOW );   
}
void Benne_a()
{
  digitalWrite ( Led_Temoin_Benne,HIGH ); delay (500);  
  digitalWrite ( Relais_Benne,HIGH ); delay (3500);
  digitalWrite ( Relais_Benne,LOW ); delay (500);
  digitalWrite ( Led_Temoin_Benne,LOW );     
}
void Helicoptere_Acc_a()
{
  digitalWrite ( Led_Temoin_Ralentissement_M,LOW ); 
  digitalWrite ( Led_Temoin_Acceleration_M,HIGH );
  for ( v = 100; v <= 255; v++ )
  { analogWrite ( Helicoptere, v ); delay(200); }
  delay(1000);
  analogWrite ( Helicoptere, 255 );
}
void Soudeur_a()
{
  digitalWrite ( Led_Temoin_Soudeur,HIGH ); delay (500);
  digitalWrite ( Relais_Soudeur,HIGH ); delay (3500);
  digitalWrite ( Relais_Soudeur,LOW ); delay (500);  
  digitalWrite ( Led_Temoin_Soudeur,LOW ); 
}
void Helicoptere_Arr_a()
{
  digitalWrite ( Led_Temoin_Acceleration_M,LOW );
  digitalWrite ( Led_Temoin_Ralentissement_M,HIGH ); 
  for ( v = 255; v >= 45; v-- )
  { analogWrite ( Helicoptere, v ); delay(100); }
  delay(1000);
  analogWrite ( Helicoptere, 0 );
}
void Benne_b()
{
  digitalWrite ( Led_Temoin_Benne,HIGH ); delay (500);  
  digitalWrite ( Relais_Benne,HIGH ); delay (3500);
  digitalWrite ( Relais_Benne,LOW ); delay (500);
  digitalWrite ( Led_Temoin_Benne,LOW );  
}
void Flash_b()
{
  digitalWrite ( Led_Temoin_Flash,HIGH ); delay (500);
  digitalWrite ( Relais_Flash,HIGH ); delay (300);
  digitalWrite ( Relais_Flash,LOW ); delay (500);
  digitalWrite ( Led_Temoin_Flash,LOW );  
}
void Soudeur_b()
{
  digitalWrite ( Led_Temoin_Soudeur,HIGH ); delay (500);
  digitalWrite ( Relais_Soudeur,HIGH ); delay (3500);
  digitalWrite ( Relais_Soudeur,LOW ); delay (500);  
  digitalWrite ( Led_Temoin_Soudeur,LOW ); 
}
void Helicoptere_Acc_b()
{
  digitalWrite ( Led_Temoin_Ralentissement_M,LOW ); 
  digitalWrite ( Led_Temoin_Acceleration_M,HIGH );
  for ( v = 100; v <= 255; v++ )
  { analogWrite ( Helicoptere, v ); delay(200); }
  delay(1000);
  analogWrite ( Helicoptere, 255 );
}
void Benne_c()
{
  digitalWrite ( Led_Temoin_Benne,HIGH ); delay (500);  
  digitalWrite ( Relais_Benne,HIGH ); delay (3500);
  digitalWrite ( Relais_Benne,LOW ); delay (500);
  digitalWrite ( Led_Temoin_Benne,LOW );  
}
void Flash_d()
{
  digitalWrite ( Led_Temoin_Flash,HIGH ); delay (500);
  digitalWrite ( Relais_Flash,HIGH ); delay (300);
  digitalWrite ( Relais_Flash,LOW ); delay (500);
  digitalWrite ( Led_Temoin_Flash,LOW ); 
} 
void Helicoptere_Arr_b()
{
  digitalWrite ( Led_Temoin_Acceleration_M,LOW );
  digitalWrite ( Led_Temoin_Ralentissement_M,HIGH ); 
  for ( v = 255; v >= 45; v-- )
  { analogWrite ( Helicoptere, v ); delay(100); }
  delay(1000);
  analogWrite ( Helicoptere, 0 );
}
void Soudeur_c()
{
  digitalWrite ( Led_Temoin_Soudeur,HIGH ); delay (500);
  digitalWrite ( Relais_Soudeur,HIGH ); delay (4000);
  digitalWrite ( Relais_Soudeur,LOW ); delay (500);  
  digitalWrite ( Led_Temoin_Soudeur,LOW );   
  Toupie();
}


