Améliorer mon programme

Bonjour à vous.

J'espère que vous pouvez m'aider, donc j'ai crée un programme qui permet de commander une bande transporteuse.
La maquette est composée de 4 positions, chaque position possède un capteur (B1-B2-B3-B4) d'un BP ( S1-S2-S3-S4) et d'une led.

Je désire rendre le programme moins "lourd", effectivement ce dernier est uniquement composé de fonctions if...

Voici un extrait :

if((digitalRead(B4)==1)&&(digitalRead(S1)==1)){
digitalWrite(SORTIE_Relais_AR, 1);
digitalWrite(SORTIE_Lampe1, 1);
}

if(digitalRead(B1)== 1){
digitalWrite(SORTIE_Relais_AR, 0);
digitalWrite(SORTIE_Lampe1, 0);}
}

Ci-dessus, une pièce est présente à la postion4, et l'on désire l'envoyer à la position1.

Donc on constate que le programme est trés répétitif. Ma question est comment l'améliorer?

Peut être une fonction du genre

void Action(int numeroRelais, int numeroLampe, boolean etatRelais, boolean etatLampe)
{
 digitalWrite(numeroRelais,etatRelais);

digitalWrite(numeroLampe,etatLampe);

}

utilisée dans ton loop() comme ceci :

if((digitalRead(B4)==1)&&(digitalRead(S1)==1)){
   //   digitalWrite(SORTIE_Relais_AR, 1);
    //  digitalWrite(SORTIE_Lampe1, 1);
ACTION(1,1,1,1);
  } 
  
  if(digitalRead(B1)== 1){
  //digitalWrite(SORTIE_Relais_AR, 0);
 // digitalWrite(SORTIE_Lampe1, 0);
  ACTION(1,1,0,0);
}

Pour éviter la succession de if , peut être regarder du côté du switch case ?!

:wink: !

Ah ouais c'est génial ca, merci beaucoup :slight_smile: