/*=======================================================================
 Séquence de mise a l'eau d'une embarcation
 la séquence est commandée par une impulsion envoyée
 par une voie de la radiocommande
 =======================================================================*/
#include <Servo.h> 
int signal = 2; // signal recepteur
int val1;       //valeur du signal recepteur
Servo servom ;             // servo monteé embarcation
int pos = 0;           
int posA = 120;    // position embarcation sur pont
int posB = 180;    // position embarcation en haut
int posC = 0;      // position embarcation dans l'eau
int vitesse = 50;  // vitesse de montee et de descente embarcation
//=========================================================================
Servo servor ;             // servo rotation grue
//
int prA = 0;     // position rotation sur mer
int prB = 90;    // position rotation sur pont
int vr = 50;    // vitesse de rotation
//=========================================================================
void setup() 
{ 
  servom.attach(3);            // attaches le servo au pin 3 
  servor.attach(4);            // attaches le servo au pin 4
  pinMode(signal, INPUT);  // signal entrée
} 
//=========================================================================
void loop() 
{ 
  servor.write(prB);   // met l'embarcation sur le pont
  servom.write(posA);  // met l'embarcation sur le pont 
  //=============================== monte embarcation==========================================
  val1 = pulseIn(signal, HIGH); //Lire pulse1 et de le stocker en tant que val1
  if (val1 < 1400 && val1 > 10 )
  {  
    for(pos = posA; pos < posB; pos += 1) 
    {                                  
      servom.write(pos);              
      delay(vitesse); 
        
    } 
    //===============================rotation grue==========================================

    for(pos = prB; pos > prA; pos -= 1) 
    {                                  
      servor.write(pos);              
      delay(vr); 
         
    } 
    //============================ descente embarcation a la mer ============================================
    for(pos = posB; pos >= posC; pos-=1)     
    {                                
      servom.write(pos);              
      delay(vitesse); 
       
    }  
    //=========================================================================
    delay(6000); // attente avant remontee
   
    //============================ montee zodiac =============================================     
    for(pos = posC; pos < posB; pos += 1) 
    {                                  
      servom.write(pos);              
      delay(vitesse); 
         
    } 
    //===========================rotation grue==============================================
    for(pos = prA; pos < prB; pos += 1) 
    {                                  
      servor.write(pos);              
      delay(vr);  
         
    } 
    //==================== pose embarcation sur le pont ============================================
    for(pos = posB; pos >= posA; pos-=1)     
    {                                
      servom.write(pos);              
      delay(vitesse); 
         
    } 
  } 
}
//=============================== FIN DE PROGRAMME ==========================================