// programme porte de garage 

#include <Servo.h>

Servo myservo1;
Servo myservo2;

const byte DureePas = 60; // regle vitesse des servomoteurs
const byte Poussoir  = 3; // le bouton-poussoir est relié à la pin 3 et à la masse
int pos = 0; // valeur de la position pour les déplacements des servos

void setup() {  
  pinMode(Poussoir, INPUT_PULLUP); // configuration en entrée, au repos un niveau HIGH est présent  
  myservo1.attach(7); // attache le servo1 à la pin 6  
  myservo1.write(0); // positionne le servo1 à 0 deg 
  myservo2.attach(6); // attache le servo1 à la pin 6  
  myservo2.write(90); // positionne le servo1 à 90 deg  
  delay (500); // délai de 500 millisecondes
} // fin setup


void loop() {
  while (digitalRead(Poussoir) == HIGH) {
    // Tant que le bouton-poussoir est au repos on attend    
  }  
  // le bouton-poussoir est appuyé, les servos vont bouger
   for (pos = 0; pos <= 90; pos += 1) { // par pas de 1 deg /95 position basse / 20 position haute     
    myservo1.write(pos); // le servo1 quitte la position 0 deg pour 90 deg
    myservo2.write(90 - pos); // le servo2 quitte la position 90 deg pour 0 deg
    delay(DureePas); // durée d'un pas   
   } // Fin du déplacement du servo1 et du servo2  
  
   while (digitalRead(Poussoir) == HIGH) {
    // Tant que le bouton-poussoir est au repos on attend
   }  
  // le bouton-poussoir est appuyé, les servos vont bouger 
   for  (pos = 90; pos >= 0; pos -= 1) { // par pas de 1 deg
    myservo1.write(pos); // le servo1 quitte la position 90 deg pour 0 deg
    myservo2.write(90 - pos); // le servo2 quitte la position 0 deg pour 90 deg
    delay(DureePas); // durée d'un pas       
   } // Fin du déplacement du servo1 et du servo2
  } // fin loop