PROGRAMME URGENT

tu mets simplement ta pin_vitesse à 0 en dehors du while.

Le while dit : tant que la valeur est inférieur à ce qui est écrit dans ma configuration, ça rentre dans ma boite.... autrement ça passe tout droit.

Disons que tu mette ton while à 3, à chaque boucle ça rentre dans la boite et ça incrémente ton compteur de 1, à la troisième boucle, ton compteur est à 3, correspondant à la valeur du while.... et ça passe tout droit, sans incrémenter ton compteur, donc ton compteur ne fonctionne que 3 fois si il est dans la boucle du while.

Donc maintenant mon code est correct, le moteur s'arrete bien après le while:

const byte PIN_VITESSE = 3; // Broche de contrôle du moteur par PWM
int compteur = 0; // on met le compteur a zero
int x = 1; // x est le nombre de recommencement de boucle pour y et z
int y = 12; // y est la vitesse en tour minutes
int z = 300; // z est le temps de marche du moteur pour y

// Fonction d'initialisation hardware
void setup() {
    pinMode(PIN_VITESSE, OUTPUT); // Mise en sortie de la broche connecté au moteur
}
void loop() {
while(compteur < x) {
analogWrite(PIN_VITESSE, y); // Génération d'un signal PWM contrôlant la vitesse du moteur a 300t/mins
delay(z); // le moteur reste allumé 5mins
compteur++; 
}
analogWrite(PIN_VITESSE, 0);
}