présentation, première fois, solicitation d'une aide

Bonsoir à tous,
Je débute avec Arduino, je suis un jeune "d'autre fois", j'ai acheté un kit débutant, je lis, je fouille, bref j'apprends.
J'ai fait ce code en m'aidant sur ce forum
Je souhaiterai avoir une aide, ou plutôt un axe pour chercher ma solution
Mon projet:
Mise sous tension Arduino,
Appui sur BP1 le moteur pas à pas fait 180° à droite (déroule une ficelle de son tambour))
Appui sur BP2 le moteur fait 180° dans l'autre sens (enroule la ficelle sur son tambour)
Mon croquis fonctionne.
Mon problème est le suivant a la mise sous tension, je veux interdire à BP2 d'être actif pour éviter toute fausse manœuvre, (enroulement sur elle même de la ficelle ) ' seul Bp1 doit permettre une action de déroulement, et ensuite Bp2 deviendrait "fonctionnel" pour enrouler la ficelle.
J'ai "bricolé" le code également avec un seul poussoir avec fonction boolean, if, mais je suis à l'arrêt.
Mon manque d'expérience est criant, je coince :confused: . Une fonction du genre si pas d'appui sur ....interdit de.. suis je sur la bonne voie? si j'inspire quelqu'un je suis preneur d'une aide, en attendant merci de m'avoir lu. AL.

[code

//**************************************************************
 // Commande moteur pas-à-pas 
 // 
 // 
 //
 //**************************************************************


  #include <Stepper.h> // Inclus la librairie pour les fonctions stepper
  #define STEPS 400    //nombre de pas pour 1 tour moteur 

  //Créer une instance de la classe stepper pour définir notre moteur
   
   Stepper Mon_moteur(STEPS, 8, 10, 9, 11);     // Sens horaire
   
   int  nb_pas = 0;  //Nombre de pas de rotation demandé au moteur
         
 // Définir les broches
 const int BP1= 2;      // La constante BP1 est affecté à la broche 2
 const int BP2= 3;      // La constante BP1 est affecté à la broche 3
 const int led =4;      // La constante led est affectée à la broche 4


 int Etat_bouton1 = 0; //  Déclaration et initialisation de la variable Etat_bouton
 int Etat_bouton2 = 0; //  idem au dessus


 void setup() 
  {             
   pinMode(led, OUTPUT);   // La broche 4 est définie comme une sortie    
   pinMode(BP1, INPUT);    // La broche 2 est définie comme une entrée 
   pinMode(BP2, INPUT);    // La broche 3 est définie comme une entrée 
   }


 void loop() 
   {
     Etat_bouton1 = digitalRead(BP1);  // lecture de l'état logique BP1
     Etat_bouton2 = digitalRead(BP2);  // lecture de l'état logique BP2
     
     Mon_moteur.setSpeed(40); //Vitesse de 40 réduire cette valeur pour avoir un vitesse plus lente
      
     nb_pas = 200;  // Une rotation complète avec 400 pas donc moitié
      
     if (Etat_bouton1 == HIGH) {         
       motor_sh(); //Appele la fonction motor_sh '(sens horaire)
     } 
     if (Etat_bouton2 == HIGH) {
       motor_sih(); //Appel la fonction motor_sih (sens anti horaire)
     }
   } 
   
//Fonction Sens horaire moteur  
 void motor_sh(){
    digitalWrite(led, HIGH);  // allume la led 
    Mon_moteur.step(nb_pas);  // fait tourner le moteur d'un 1/2 tour
  }
//Fonction Sens anti-horaire moteur  
  void motor_sih(){
       Mon_moteur.step(-nb_pas); // fait tourner le moteuu d'un demi tour
       digitalWrite(led, LOW);   // Eteint la led
  }

][/code]

Bonsoir et bienvenue

Comment allez vous être sûr de l’état de la ficelle à l’allumage? Une panne de courant peut arriver n’importe quand...

Bonjour Alain,

Je ne connais pas grand chose au code et je ne me risquerai pas sur ce terrain .
Pour la partie "logique" il faudrait sans doute que nous en sachions plus sur ton projet il semblerait utile de savoir si l'action commandée par la corde a été au bout, par exemple avec un contact sur une porte , si c'est ce que tu commandes, faute de pouvoir connaitre avec certitude le nombre de pas déjà effectués dans un sens ou dans l'autre, le volume de corde déjà enroulée ou déroulée si quelque chose plante. (pas ayant sauté si ça force, panne d'alimentation, appui sur mauvais bouton, etc)

Plusieurs montages pour ouverture / fermeture des portes de poulaillers sont sur le forum - ça pourrait vous donner des idées

Bonsoir à tous,
Merci de votre aide, je vais suivre vos conseils, je vais étudier les codes de nos amis "les amis des poules" cela semble une piste, je manque pas de revenir sur ce poste quand j'aurai avancé dans mes recherches .
Bonne soirée
AL