loop avant la fin du programme.

Bonjour

Tout est dans le titre mon programme boucle avant d'arriver à la fin du loop et toujours au même endroit.

Je vous remercie de votre aide.

#include <Servo.h> //Ajoute la librairie Servo

int painled1=2;//led du pain
int painled2=3;//led du pain
int painled3=4;//led du pain
int ledmiettes1=5;//led des miettes
int ledmiettes2=6;//led des miettes
int ledmiettes3=7;//led des miettes
int ledmiettes4=8;//led des miettes

//servo1 :
Servo servo1;    //Déclare un nouveau servomoteur nommé servo1
int pos = 65;     //Position initiale du servo
#define PAUSE 40 //Symbolise la pause en ms entre chaque mouvements du servo
#define MIN  500 // Position 0° en microseconde 
#define MAX  2500 // Position 180° en microseconde


// defines pins numbers
const int stepPin = 10; 
const int dirPin = 11; 


void setup() {
 Serial.begin(9600);
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
 
pinMode(painled1,OUTPUT);
  pinMode(painled3,OUTPUT);
    pinMode(ledmiettes1,OUTPUT);
     pinMode(ledmiettes2,OUTPUT);
      pinMode(ledmiettes3,OUTPUT);
       pinMode(ledmiettes4,OUTPUT);
       
  servo1.attach(9, MIN , MAX); //Attache servo1 au pin 9 avec MIN et MAX 
}

void loop() {
  
  digitalWrite(dirPin,LOW); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 4500; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(500); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(500); 
  }

  for (pos = 65; pos <= 120; pos++)
  //Rejoins un angle de 120° depuis 65° par pas de 1°
  {
    servo1.write(pos);
    delay(PAUSE);
  }
 

 

    digitalWrite(painled1,HIGH); // on passe le pin à +5V
     delay (500);
    digitalWrite(ledmiettes1,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes1,LOW); // on passe le pin à 0V

    digitalWrite(ledmiettes2,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes2,LOW); // on passe le pin à 0V

       digitalWrite(ledmiettes3,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes3,LOW); // on passe le pin à 0V

       digitalWrite(ledmiettes4,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes4,LOW); // on passe le pin à 0V

 digitalWrite(painled1,LOW); // on passe le pin à 0V
delay (500);
 
  for (pos = 120; pos >= 65; pos--)
  //Rejoins un angle de 65° depuis 120° par pas de 1°
  {
    servo1.write(pos);
    delay(PAUSE);
  }

 digitalWrite(painled3,HIGH); // on passe le pin à +5V
     delay (500);

     //XXXXXXXXXXXXXXXje ne comprend pas pourquoi ça boucle ici.XXXXXXXXXXXXXX

    digitalWrite(ledmiettes1,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes1,LOW); // on passe le pin à 0V

    digitalWrite(ledmiettes2,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes2,LOW); // on passe le pin à 0V

       digitalWrite(ledmiettes3,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes3,LOW); // on passe le pin à 0V

       digitalWrite(ledmiettes4,HIGH); // on passe le pin à +5V
     delay (500);
      digitalWrite(ledmiettes4,LOW); // on passe le pin à 0V

 digitalWrite(painled3,LOW); // on passe le pin à 0V  
delay (500);
}

Bonjour,

Ca m'étonne que la fin de la loop() ne soit pas exécutée.
Comment t'en es tu rendu compte?
Pour débugger ton programme ajoute des Serial.println() pour voir si lignes ne sont effectivement pas exécutées.

Que veux tu dire par 'boucle'? Il n'exécute pas les instructions après le xxxxxxx ?

Tu devrais mettre des serial.print un peu partout pour bien suivre l'exécution.

Essaye avec

servo1.attach(9) ;

Damned! Grillé par Kamill !

avec un compteur et Serial.print en fin de boucle

1/ le Serial s'affiche bien ...................la loop dure 15 secondes

Problème résolu.
j'ai mis un LM7805 pour passer ma tension de 12v a 5v sur le vin et plus de problème.

Merci.