Salut à tous,
Je n'arrive pas à téléverser ce code :
//On placele modulesérie sur les RX TX2 (16 et 17),
//le 18 sera en grd et 19 en 5V pour alim du max232
# define ALIM 19
# define GROUND 18
String inString [100];
String lecture [20];
String i [20];
int p;
int a;
String affiche [20];
//
void commande(String);
int poids ();
String acquerir ();
void setup() {
// Alim du RS 232
pinMode (GROUND,OUTPUT);
pinMode (ALIM, OUTPUT);
digitalWrite(ALIM, HIGH);
digitalWrite(GROUND, LOW);
//////////////////////////////////////////////
Serial.begin(9600);
Serial.println ("Parti !!!");
delay (1000);
Serial.println ("Initialisation compteur...");
Serial2.begin(9600);
Serial.println ("Port série démarré");
commande ("ECHO");
String i = acquerir();
if (i== "ECHO")
{Serial.print ("Echo OK !!!!");}
else
{Serial.print ("Problème echo !!!!!"); }
delay (1000);
//commande ("TARE");
//Serial.println ("Tare envoyée");
//delay (1000);
commande ("AFFICH2");
}
///////////////////////////////////////////////////////////////////
void loop(){
for (int a=0;a<15;a++);{
int p = poids();
Serial.print("Le poids est ");
Serial.println (p);
Serial.print("Le poids +111 est ");
Serial.println (p+111);
delay (3000);
}//Fin test poids
//Tests affichages
Serial.println ("Tests d'affichage hello world");
commande ("!HELLO");
delay (2000);
commande ("!WORLD");
delay (5000);
}
// Fin void loop
/////////////////////////////////////////////////////////////////////////
//Commandes en général
void commande (String i)
{ Serial2.flush();
if (i=="ZERO")
{Serial2.print ("ZERO\r");
}
if (i=="TARE")
{Serial2.print ("ZERO\r");
}
if (i=="READ");
{Serial2.print ("READ\r");
}
if (i=="ECHO");
{Serial2.print ("ECHO\r");
}
if (i=="AFFICH2");
{Serial2.print ("DINT07D0\r");
}
if (i[0]=='!') {
String affiche ="DISP00";
affiche.concat (i.substring (1,3));
affiche.concat ('/r');
Serial2.print (affiche);
Serial.print ("Essai d'affichage : ");
Serial.println (i.substring (1));
}
}
//Commande de poids.........................
int poids () {
commande ("READ");
int pds = 0;
String lecture=acquerir();
for (int i=0; i<15;i++){
if (isDigit(lecture[i]))
{
pds=pds*10+int(lecture[i]);
}
}
return pds;
}
//Commande d'acquisition d'une ligne sur commande
String acquerir() {
String inString= "";
boolean c=true;
while (c) {
int inChar = Serial2.read();
switch (inChar) {
case -1 : {break;}// si rien dans le buffer
case 13 :{
c=false;// Pour sortir de la boucle !
break;}
case 10 :{
break;}
default :{
inString += (char)inChar;
break;
}
}// fin switch
}//fin while
return inString;
} //fin fonction acquérir
La vérif est Ok, mais le téléversement bloque à moitié et puis plus rien...
Avez-vous des idées pour me dépanner ?