Programme suiveur solaire 1 axe_ moteur DC et carte Shield

J’aimerai s’il vous plait un peu d’aide pour finaliser un programme.

Le projet est de faire un suiveur avec un seul axe et deux photorésistances, pour un séchoir solaire (projet globalement peu complexe).

Le tout est monté sur un plateau à bille et entraîné par un petit moteur DC avec un réducteur.

Pour être très honnête, zéro connaissance en programmation et globalement en électronique.

J’ai pas mal cherché sur le sujet et trouvé des programmes que j’ai essayé d’adapter au mien, mais après compilation, j’ai quelques erreurs et je sèche par méconnaissance…..

D’avance merci

Emmanuel

les messages d'erreurs:

Arduino : 1.8.9 (Windows 7), Carte : "Arduino/Genuino Uno"

F:\Document\Solaire\prog\arduino_seichoir_final\arduino_seichoir_final.ino: In function 'void loop()':

arduino_seichoir_final:79:16: error: 'testeSecurite' was not declared in this scope

testeSecurite ();

^

arduino_seichoir_final:137:14: error: 'arretmoteur' was not declared in this scope

arretmoteur ();

^

arduino_seichoir_final:145:9: error: 'EstAz' was not declared in this scope

{EstAz ();}

^

arduino_seichoir_final:148:11: error: 'OuestAz' was not declared in this scope

{OuestAz ();}

^

arduino_seichoir_final:151:11: error: 'OuestAz' was not declared in this scope

{OuestAz ();}

^

arduino_seichoir_final:154:9: error: 'EstAz' was not declared in this scope

{EstAz ();}

^

arduino_seichoir_final:169:16: error: 'testeSecurite' was not declared in this scope

testeSecurite ();

^

arduino_seichoir_final:181:1: error: a function-definition is not allowed here before '{' token

{

^

arduino_seichoir_final:194:1: error: a function-definition is not allowed here before '{' token

{

^

exit status 1
'testeSecurite' was not declared in this scope

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

et le programme:

  // attribution de la broche pour sens Azimute
int sensAz = 12;

// attribution des broches vitesse du moteur Azimute
int vitesseAz = 3; // broche PWM

// attribution des broches aux capteurs de lumière
int capteurEst = A0 ;
int capteurOuest = A1 ;


// declaration des variables sens de rotation
int Droite = 1;
int Gauche = 0;
// déclaration des variables de valeur des capteurs et controle
int valeurCapteurEst = 0;
int valeurCapteurOuest = 0;

// declaration des variables de controle pour le pleine lumiere
volatile float controleAz = 0 ;

int ecartAz =0;

// variables pour la fonction arret moteur
int arret1 = 0;


int led = A6; // declaration de la broche 4 pour allumer une led de controle arret moteur (digital PWM)
// déclaration de la variable lumière pour le teste de lumière mini utile au programme
int lumiere = 0 ;// variable pour lumiere mini
int Var = 0;
//.............................................................

//.............................................................

void setup() {
  // put your setup code here, to run once:



  // declaration des broches en sortie (PWM)
pinMode (sensAz,OUTPUT);

pinMode (vitesseAz,OUTPUT);

pinMode (led,OUTPUT);
// declaration des broches en entrée
pinMode (capteurEst,INPUT);
pinMode (capteurOuest,INPUT);

// instruction de communication avec le PC
Serial.begin (9600);

}



void loop() {
  // put your main code here, to run repeatedly:
   

{
//prend la valeur des capteurs lumière
Serial.println ("ok ok ok debut de boucle ");

valeurCapteurEst = analogRead (capteurEst);
valeurCapteurOuest = analogRead (capteurOuest);

valeurCapteurEst = valeurCapteurEst + ecartAz;
// ajouter la constante 'ecart' si nécessaire après test

//donne à la variable lumière une moyenne à partir des capteurs Est et Ouest pour aprécier s'il y a assez de lumière avec une valeur donnée dans la boucle while
lumiere = ((valeurCapteurEst+valeurCapteurOuest)/2);
Serial.println ("Si la lumiere est inferieur a 200 le suiveur attend.");
Serial.print ( "La lumiere est egale a : " );
Serial.println ( lumiere );

//....................................test de securite.......................
testeSecurite ();
//.....................................................................................
Serial.println ("tourne en boucle tant que 'lumière' est < que 200 : valeur à ajuster " );
while (lumiere < 200) return;
// affiche les valeurs des capteurs de lumière
Serial.println ("La lumiere est suffisante pour chercher le soleil");
Serial.println ("Valeurs des capteurs de lumiere");
Serial.print ("Est- ");Serial.println(valeurCapteurEst);
Serial.print ("Ouest- ");Serial.println(valeurCapteurOuest);

//.............................................................................
// prend le valeur de l'ecart des deux cellule est/ouest 
//.............................................................................
controleAz = (valeurCapteurEst - valeurCapteurOuest);


//.............................................................
// rend positif l'écart trouvé
//.............................................................
if (controleAz < 0)


controleAz = controleAz * -1;
}
{
//.............................................................
//verifie si les nombres sont positif sur pc
//.............................................................
Serial.println (" controle Azimute");
Serial.println (controleAz);

//..............................................................
// réinitialise les variables à 0 pour le controle pleine lumiere
//..............................................................

arret1 = 0;

Serial.println ("arret1");
Serial.println (arret1);

//.......................................................................................
//test la position du suiveur pour le plein soleil
//......................................................................................

if ( controleAz < 6 )

arret1 = 1;
Serial.println ("arret1");
Serial.println (arret1);
// moteur azimute à l' arret
}
{
//.................................................................
// si les cellules sont en pleine lumiere: arret par un delai modifiable ( 5 minutes ) led clignote
//..................................................................

if (arret1 == 3 )

arretmoteur ();
}
{
//................................................................................
// les lignes suivantes permettent de definir quel moteur doit tourner pour être en pleine lumière et dans quel sens
//................................................................................

if ((arret1 == 0) && ( valeurCapteurEst > valeurCapteurOuest ))
{EstAz ();}

if ((arret1 == 0) && ( valeurCapteurOuest > valeurCapteurEst ))
{OuestAz ();}

if ((arret1 == 2 )&& (valeurCapteurOuest > valeurCapteurEst ))
{OuestAz ();}

if ((arret1 == 2 )&& ( valeurCapteurEst > valeurCapteurOuest ))
{EstAz ();}

//....................................................................................
}

{
// ajuouter la valeur 'ecart' si nécessaire après test
// affichage pour controle de coherance permet de suivre l'evolution des valeurs des capteurs..............

valeurCapteurEst = analogRead (capteurEst);
valeurCapteurOuest = analogRead (capteurOuest);

Serial.print ("Est- ");Serial.println(valeurCapteurEst);
Serial.print ("Ouest- ");Serial.println(valeurCapteurOuest);

testeSecurite ();
Serial.println ("Je suis en pleine lumiere");
digitalWrite (led,HIGH);
delay (1000);
digitalWrite (led, LOW );
delay (1000);
Var ++ ;
}


void EstAz ()

{
 // determination sens et vitesse moteur
  testeSecurite ();
digitalWrite (sensAz,Gauche);
// ces deux variable détermine un sens dans le pont en H
analogWrite (vitesseAz,100);
// mise en route du moteur Azimute
Serial.println (" Le moteur 'Azimute' tourne vers l'Est");
delay ( 1000 ); // ajustable impaire
// arret moteur
analogWrite (vitesseAz, 0);
}
void OuestAz ()
{
 // determination sens et vitesse moteur
testeSecurite ();
digitalWrite (sensAz,Droite);
// ces deux variable détermine un sens dans le pont en H
analogWrite (vitesseAz, 100);
// mise en route du moteur Azimute
Serial.println (" Le moteur 'Azimute' tourne vers l'Ouest");
delay (2000 );
// ajustable paire
// arret moteur
analogWrite (vitesseAz, 0);
}
}

Utilise CTRL-T pour indenter le code correctement.
Tu verras mieux tes erreurs, en particulier l'accolade en fin de sketch, qui devrait se trouver plutôt en fin de loop.

je sèche par méconnaissance

Vous pouvez en profiter pour faire aussi sécher le linge alors :grin: :grin: ;D

Si vous appuyez sur ctrl-T dans l'IDE vous allez indenter le code (bien l'aligner) et vous verrez que vous avez mis tout votre code au sein de la fonction loop() et qu'il y a une paire de {} en trop

chaque fonction doit être séparée

void setup()
{
 // code de setup
}

void loop()
{
  // code de la loop
}

void maFonction1()
{
  // code de ma fonction1
}

void maFonction2()
{
  // code de ma fonction2
}

PS/ on écrit séchoir, pas seichoir .. une seiche (Sepia officinalis) est une espèce de céphalopode

Vos tests sont très "brutaux", désolé pour la formulation maladroite
Vous orientez vers l'Est si le capteur Est est plus éclairé que le capteur Ouest, ce qui n'est pas illogique; de même pour le capteur Ouest

Ca peut "marcher", mais que se passera-t-il si vous êtes au voisinage d'un optimum?
J'ai peur que votre moteur ne soit agité dans un sens ou l'autre, au gré des nuages, des oiseaux ou des fluctuations de l'electronique
Je pense que laisser une petite tolérance limiterait cette agitation
remplacer

if ((arret1 == 0) && ( valeurCapteurOuest > valeurCapteurEst ))
{OuestAz ();}

par

if ((arret1 == 0) && ( valeurCapteurOuest > valeurCapteurEst + tol )){OuestAz ();}

tol étant une valeur petite, à définir empiriquement (0 pour rester compatible avec votre idée initiale)

Bonjour

j'ai donc effectué quelques modifications suite à vos conseils, effectivement c'est plus lisible...

// code arduino_sechoir solaire_moteur DC_Shield

// attribution de la broche pour sens Azimute
int sensAz = 12;

// attribution des broches vitesse du moteur Azimute
int vitesseAz = 3; // broche PWM

// attribution des broches aux capteurs de lumière
int capteurEst = A0;
int capteurOuest = A1 ;

// declaration des variables sens de rotation
int Droite = 1;
int Gauche = 0;

// déclaration des variables de valeur des capteurs et controle
int valeurCapteurEst = 0;
int valeurCapteurOuest = 0;

// declaration des variables de controle pour le pleine lumiere
volatile float controleAz = 0 ;
int ecartAz = 0;

// variaviables pour la fonction arret moteur
int arret1 = 0;

// declaration de la broche 4 pour allumer une led de controle arret moteur (digital PWM)
int led = A6;

// déclaration de la variable lumière pour le teste de lumière mini utile au programme
int lumiere = 0 ;// variable pour lumiere mini
int Var = 0;
//.............................................................

//.............................................................


void setup() {
  // put your setup code here, to run once:

  // declaration des broches en sortie (PWM)
  pinMode (sensAz, OUTPUT);

  pinMode (vitesseAz, OUTPUT);

  pinMode (led, OUTPUT);
  // declaration des broches en entrée
  pinMode (capteurEst, INPUT);
  pinMode (capteurOuest, INPUT);

  // instruction de communication avec le PC
  Serial.begin (9600);


}
void loop() {
  // put your main code here, to run repeatedly:

  Serial.println ("ok ok ok debut de boucle ");
  //prend la valeur des capteurs lumière
  valeurCapteurEst = analogRead (capteurEst);
  valeurCapteurOuest = analogRead (capteurOuest);

  valeurCapteurEst = valeurCapteurEst + ecartAz;
  // ajuouter la constante 'ecart' si nécessaire après test

  //donne à la variable lumière une moyenne à partir des capteurs Est et Ouest pour aprécier s'il y a assez de lumière avec  une valeur donné dans la boucle while
  lumiere = ((valeurCapteurEst + valeurCapteurOuest) / 2);
  Serial.println ("Si la lumiere est inferieur a 200 le suiveur attend.");
  Serial.print ( "La lumiere est egale a : " );
  Serial.println ( lumiere );

  //....................................teste de securite.......................
  testeSecurite ();
  //.....................................................................................
  Serial.println ("tourne en boucle tant que 'lumière' est < que 200 : valeur à ajuster " );
  while (lumiere < 200) return;
  // affiche les valeurs des capteurs de lumière
  Serial.println ("La lumiere est suffisante pour chercher le soleil");
  Serial.println ("Valeurs des capteurs de lumiere");
  Serial.print ("Est- "); Serial.println(valeurCapteurEst);
  Serial.print ("Ouest- "); Serial.println(valeurCapteurOuest);

  //..............................................................

  // prend le valeur de l'ecart des deux cellule est/ouest
  //..............................................................
  controleAz = (valeurCapteurEst - valeurCapteurOuest);
  //.............................................................

  // rend positif l'écart trouvé
  //.............................................................
  if (controleAz < 0)
  {
    controleAz = controleAz * -1;
  }
  //.............................................................
  //.............................................................

  //verifie si les nombres sont positif sur pc
  //.............................................................
  Serial.println (" controle Azimute");
  Serial.println (controleAz);

  //..............................................................
  // réinitialise les variables à 0 pour le controle pleine lumiere

  //..............................................................
  arret1 = 0;

  Serial.println ("arret1");
  Serial.println (arret1);

  //..............................................................

  //teste la position du suiveur pour le plein soleil
  //..............................................................
  if ( controleAz < 6 )
  {
    arret1 = 1;
    Serial.println ("arret1");
    Serial.println (arret1);
    // moteur azimute à l' arret
  }
  //.................................................................
  // si les cellules sont en plein lumiere: arret par un delai modifiable ( 5 minutes ) led clignote
  //.................................................................
  if (arret1 == 3 )
  {
    arretmoteur ();
  }
  //................................................................
  // les lignes suivantes permettent de definir quel moteur doit tourner pour être en pleine lumière et dans quel sens
  //...............................................................
  if ((arret1 == 0) && ( valeurCapteurEst > valeurCapteurOuest + 5 )) {
    EstAz ();
  }

  if ((arret1 == 0) && ( valeurCapteurOuest > valeurCapteurEst + 5 )) {
    OuestAz ();
  }

  if ((arret1 == 2 ) && (valeurCapteurOuest > valeurCapteurEst + 5 )) {
    OuestAz ();
  }

  if ((arret1 == 2 ) && ( valeurCapteurEst > valeurCapteurOuest + 5 )) {
    EstAz ();
  }
  //.................................................................

  {
    // ajuouter la valeur 'ecart' si nécessaire après teste
    // affichage pour controle de coherance Permet de suivre l'evolution des valeurs des capteurs..............…
    valeurCapteurEst = analogRead (capteurEst);
    valeurCapteurOuest = analogRead (capteurOuest);

    Serial.print ("Est- "); Serial.println(valeurCapteurEst);
    Serial.print ("Ouest- "); Serial.println(valeurCapteurOuest);
  }
  { testeSecurite ();
    Serial.println ("Je suis en pleine lumiere");
    digitalWrite (led, HIGH);
    delay (1000);
    digitalWrite (led, LOW );
    delay (1000);
    Var ++ ;
  }
  void EstAz ()

  { testeSecurite ();
    digitalWrite (sensAz, Gauche);
    // ces deux variable détermine un sens dans le pont en H
    analogWrite (vitesseAz, 255);
    // mise en route du moteur Azimute
    Serial.println (" Le moteur 'Azimute' tourne vers l'Est");
    delay ( 1000 ); // ajustable impaire
    // arret moteur
    analogWrite (vitesseAz, 0);
  }
  void OuestAz ()
  {
    testeSecurite ();
    digitalWrite (sensAz, Droite);
    // ces deux variable détermine un sens dans le pont en H
    analogWrite (vitesseAz, 255);
    // mise en route du moteur Azimute
    Serial.println (" Le moteur 'Azimute' tourne vers l'Ouest");
    delay (2000 );
    // ajustable paire
    // arret moteur
    analogWrite (vitesseAz, 0);
  }
  // .............................................
}

mais quand je fais une vérification j'ai toujours des messages d'erreurs, et je ne sais pas vraiment interpréter :
"was not declared in this scope"

je pense que la fonction utilisée n'est pas dans le langage normal de programmation...?
est-ce cela?

par quoi les remplacer... ou comment les déclarer

d'avance merci

Emmanuel

les erreurs....:

Arduino : 1.8.9 (Windows 7), Carte : "Arduino/Genuino Uno"

F:\Document\Solaire\prog\arduino_sechoir_final\arduino_sechoir_final.ino: In function 'void loop()':

arduino_sechoir_final:76:18: error: 'testeSecurite' was not declared in this scope

testeSecurite ();

^

arduino_sechoir_final:132:18: error: 'arretmoteur' was not declared in this scope

arretmoteur ();

^

arduino_sechoir_final:138:12: error: 'EstAz' was not declared in this scope

EstAz ();

^

arduino_sechoir_final:142:14: error: 'OuestAz' was not declared in this scope

OuestAz ();

^

arduino_sechoir_final:146:14: error: 'OuestAz' was not declared in this scope

OuestAz ();

^

arduino_sechoir_final:150:12: error: 'EstAz' was not declared in this scope

EstAz ();

^

arduino_sechoir_final:173:3: error: a function-definition is not allowed here before '{' token

{ testeSecurite ();

^

arduino_sechoir_final:184:3: error: a function-definition is not allowed here before '{' token

{

^

exit status 1
'testeSecurite' was not declared in this scope

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

D'une part l'accolade en ligne 198 serait mieux à sa place en ligne 172.

D'autre part deux fonctions testeSecurite() et arretmoteur() sont inexistantes.

Bonjour

Apres modifications je n'ai plus d'erreurs....
par contre maintenant j'ai un problème pour le téléversement...

le code

// code arduino_sechoir solaire_moteur DC_Shield

// attribution de la broche pour sens Azimute
int sensAz = 12;

// attribution des broches vitesse du moteur Azimute
int vitesseAz = 3; // broche PWM

// attribution des broches aux capteurs de lumière
int capteurEst = A0;
int capteurOuest = A1 ;

// declaration des variables sens de rotation
int Droite = 1;
int Gauche = 0;

// déclaration des variables de valeur des capteurs et controle
int valeurCapteurEst = 0;
int valeurCapteurOuest = 0;

// declaration des variables de controle pour le pleine lumiere
volatile float controleAz = 0 ;
int ecartAz = 0;

// variaviables pour la fonction arret moteur
int arret1 = 0;

// declaration de la broche 4 pour allumer une led de controle arret moteur (digital PWM)
int led = A6;

// déclaration de la variable lumière pour le teste de lumière mini utile au programme
int lumiere = 0 ;// variable pour lumiere mini
int Var = 0;
//.............................................................

//.............................................................


void setup() {
  // put your setup code here, to run once:

  // declaration des broches en sortie (PWM)
  pinMode (sensAz, OUTPUT);

  pinMode (vitesseAz, OUTPUT);

  pinMode (led, OUTPUT);
  // declaration des broches en entrée
  pinMode (capteurEst, INPUT);
  pinMode (capteurOuest, INPUT);

  // instruction de communication avec le PC
  Serial.begin (9600);


}
void loop() {
  // put your main code here, to run repeatedly:

  Serial.println ("ok ok ok debut de boucle ");
  //prend la valeur des capteurs lumière
  valeurCapteurEst = analogRead (capteurEst);
  valeurCapteurOuest = analogRead (capteurOuest);

  valeurCapteurEst = valeurCapteurEst + ecartAz;
  // ajuouter la constante 'ecart' si nécessaire après test

  //donne à la variable lumière une moyenne à partir des capteurs Est et Ouest pour aprécier s'il y a assez de lumière avec  une valeur donné dans la boucle while
  lumiere = ((valeurCapteurEst + valeurCapteurOuest) / 2);
  Serial.println ("Si la lumiere est inferieur a 200 le suiveur attend.");
  Serial.print ( "La lumiere est egale a : " );
  Serial.println ( lumiere );

  //....................................teste de securite.......................
  //.....................................................................................
  Serial.println ("tourne en boucle tant que 'lumière' est < que 200 : valeur à ajuster " );
  while (lumiere < 200) return;

  // affiche les valeurs des capteurs de lumière
  Serial.println ("La lumiere est suffisante pour chercher le soleil");
  Serial.println ("Valeurs des capteurs de lumiere");
  Serial.print ("Est- "); Serial.println(valeurCapteurEst);
  Serial.print ("Ouest- "); Serial.println(valeurCapteurOuest);

  //..............................................................

  // prend le valeur de l'ecart des deux cellule est/ouest
  //..............................................................
  controleAz = (valeurCapteurEst - valeurCapteurOuest);
  //.............................................................

  // rend positif l'écart trouvé
  //.............................................................
  if (controleAz < 0)
  {
    controleAz = controleAz * -1;
  }
  //.............................................................
  //.............................................................

  //verifie si les nombres sont positif sur pc
  //.............................................................
  Serial.println ("controle Azimute");
  Serial.println (controleAz);

  //..............................................................
  // réinitialise les variables à 0 pour le controle pleine lumiere

  //..............................................................
  arret1 = 0;

  Serial.println ("arret1");
  Serial.println (arret1);

  //..............................................................

  //teste la position du suiveur pour le plein soleil
  //..............................................................
  if ( controleAz < 6 )
  {
    arret1 = 1;
    Serial.println ("arret1");
    Serial.println (arret1);
    // moteur azimute à l' arret
  }

  //.................................................................
  // si les cellules sont en plein lumiere: arret par un delai modifiable ( 5 minutes ) led clignote
  //.................................................................
  if (arret1 == 1 )
  {
    arretmoteur ();
  }

  //................................................................
  // les lignes suivantes permettent de definir quel moteur doit tourner pour être en pleine lumière et dans quel sens
  //...............................................................
  if ((arret1 == 0) && ( valeurCapteurEst > valeurCapteurOuest + 5 ))
  {
    EstAz ();
  }

  if ((arret1 == 0) && ( valeurCapteurOuest > valeurCapteurEst + 5 ))
  {
    OuestAz ();
  }

}
//.................................................................
// ensemble des fonctions
//................................................................

void arretmoteur () // fait clignoter la led rouge pendant ( 2 secondes x 150 = 5 minutes )
{
  Var = 0;
  while (Var < 150)
  {
    // ajouter la valeur 'ecart' si nécessaire après test
    // affichage pour controle de coherance Permet de suivre l'evolution des valeurs des capteurs..............…
    valeurCapteurEst = analogRead (capteurEst);
    valeurCapteurOuest = analogRead (capteurOuest);

    Serial.print ("Est- "); Serial.println(valeurCapteurEst);
    Serial.print ("Ouest- "); Serial.println(valeurCapteurOuest);


    Serial.println ("Je suis en pleine lumiere");
    digitalWrite (led, HIGH);
    delay (1000);
    digitalWrite (led, LOW );
    delay (1000);
    Var ++ ;
  }
}
void EstAz ()

{

  digitalWrite (sensAz, Gauche);
  // ces deux variable détermine un sens dans le pont en H
  analogWrite (vitesseAz, 255);
  // mise en route du moteur Azimute
  Serial.println (" Le moteur 'Azimute' tourne vers l'Est");
  delay ( 1000 ); // ajustable impaire
  // arret moteur
  analogWrite (vitesseAz, 0);
}
void OuestAz ()
{

  digitalWrite (sensAz, Droite);
  // ces deux variable détermine un sens dans le pont en H
  analogWrite (vitesseAz, 255);
  // mise en route du moteur Azimute
  Serial.println (" Le moteur 'Azimute' tourne vers l'Ouest");
  delay (2000 );
  // ajustable paire
  // arret moteur
  analogWrite (vitesseAz, 0);
}

// .............................................

et mes erreurs :

Le croquis utilise 4852 octets (15%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 616 octets (30%) de mémoire dynamique, ce qui laisse 1432 octets pour les variables locales. Le maximum est de 2048 octets.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20
Une erreur est survenue lors du transfert du croquis

je vais y arriver avec un peu d'aide... :confused:

Emmaneul

"Le croquis utilise 4852 octets (15%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 616 octets (30%) de mémoire dynamique, ce qui laisse 1432 octets pour les variables locales. Le maximum est de 2048 octets.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20
Une erreur est survenue lors du transfert du croquis"
c'est un message typique que l'IDE ne voit pas le port SERIE.
Soit il est mal choisi.. pour vérifier
regarder: "outils,Port là apparait le COmxx sur lequel l'IDE est connecté.
Si tu en a 2 débrancher celui qui est relié à ton arduino, regarder celui qui a disparu, rbrancher l'arduino regarder celui qui vient de réapparaitre.
LE selectionner
Televerser..
soit c'est souvent le port USB qui "plante".
FERMER l'IDE et le relancer.. Souvent ca remarche..

A+

:slight_smile: :slight_smile:
Impeccable tout fonctionne avec la plaque d'essai et tous les éléments, le moteur tourne dans les deux sens... c’était le but recherché...

encore merci à tous.

je ferai quelques photos du montage terminé.

bon WE

Emmanuel