[ resolu ]Eviter les repetitons

Bonsoir
Je fais appel à vous mon programme est très long et je ne sais pas si je vais avoir assez de place sur ma UNO
comment faire pour savoir si mon programme n'est pas trop lourd ?
De plus je dois mettre 4 fois de suite une portion de programme comment faire pour ne pas copier 4 fois la même chose ?
je vous remercie beaucoup pour votre aide

cette partie de code est long (4x la même chose) peut-on réduire ?
merci

}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10); 


}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10); 


}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10); 


}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10);

Bonsoir
j'ai essayé de faire ça mais ça ne marche pas !

}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10); 


}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10); 


}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
byte i = 0;
while (i < 5) 
{
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10); 
i++;


}
for (pos11 = 90; pos11 > 35; pos11 -= 1)
{
  pos10=map(pos11,90,35,90,35);
  servo11.write(pos11);
  servo10.write(pos10);
  delay(10);
}
for (pos9 = 90; pos9 < 180; pos9 += 1)
{
  pos8=map(pos9,90,180,0,45);
  servo9.write(pos9);
  servo8.write(pos8);
  delay(10);

http://www.siteduzero.com/sciences/tutoriels/arduino-pour-bien-commencer-en-electronique-et-en-programmation/les-fonctions-6

Voici une proposition de factorisation de ton code avec l'utilisation d'une routine pourRegler. Je ne te garantis pas que j'ai rigoureusement respecté tes paramètres mais ainsi tu vas réduire ton code de 3 232 octets à 2 510. Le principe est d'utiliser des tableaux pour définir tes paramètres (valeurs) et une seule routine pour les mettre en oeuvre. Pour cette routine, un index permet de sélectionner le réglage à appliquer.

#include <Servo.h>

#define NB_REGLAGES 2

int DEB_O[NB_REGLAGES] = {90,  90}; // origines
int FIN_O[NB_REGLAGES] = {35, 180};
int DEB_C[NB_REGLAGES] = {90,   0}; // cibles
int FIN_C[NB_REGLAGES] = {35,  45};
int SENS[NB_REGLAGES]  = {-1,   1}; // sens de parcours

void pourRegler (Servo servoA, Servo servoB, int index)
//***************************************************************************
{
  boolean nonTermine = true;
  int posA = DEB_O[index];
  while (nonTermine)
  {
    int posB = map(posA, DEB_O[index], FIN_O[index], DEB_C[index], FIN_C[index]);
    servoA.write(posA);
    servoB.write(posB);
    delay(10);
    
    posA = posA + SENS[index];
    nonTermine = (SENS[index] == -1) ? (posB > FIN_O[index]) : (posB < FIN_O[index]);
  }
}

void setup ()
//***************************************************************************
{
  Servo servo8;
  Servo servo9;
  Servo servo10;
  Servo servo11;
  
  for (int i=0; i<4; i++)
  {
    pourRegler(servo11, servo10, 0);
    pourRegler(servo9,  servo8,  1);
  }
}

Bonjour
Merci beaucoup à vous deux, je vais pouvoir continuer mon programme !

En complément, si tu dois toujours utiliser ces réglages (90 à 35 et 90 à 180), tu auras intérêt à précalculer une bonne fois pour toutes les résultats des fonctions map() et stocker ces résultats dans un tableau. Tu économiseras ainsi des octets de code (plus d'appel à map) et du temps d'exécution (calculs en moins).

Bonjour corsaire50

merci pour l'info, c'est gentil de m'avoir aidé !