Bonjour,
J'ai fait quelques recherches mais je ne trouve pas de solutions à mon problème, donc je viens demander de l'aide ici. J'ai un programme en Java qui envoie une suite de 368 caractères à l'arduino à l'aide de la librairie JSerialComm. Voila mon code sur l'arduino :
int incomingByte = 0;
int compteur = 0;
const int ledBleu = 6; // affecte la led bleu au port 6
const int ledRouge = 2; // affecte la led rouge au port 2
const int ledVert = 4; // affecte la led verte au port 4
void setup() {
Serial.begin(9600);
pinMode (ledBleu, OUTPUT); // port 3 en mode sortie
pinMode (ledRouge, OUTPUT); // port 5 en mode sortie
pinMode (ledVert, OUTPUT); // port 6 en mode sortie
while (!Serial) {
}
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
Serial.println(incomingByte);
compteur++;
Serial.println(compteur);
switch(incomingByte) {
case 82:
Serial.println("R");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 0);
break;
case 83:
Serial.println("R'");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 0);
break;
case 84:
Serial.println("R2");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 0);
break;
case 85:
Serial.println("U");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 255);
break;
case 86:
Serial.println("U'");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 255);
break;
case 87:
Serial.println("U2");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 255);break;
case 76:
Serial.println("L");
analogWrite(ledRouge, 0);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 0);
break;
case 77:
Serial.println("L'");
analogWrite(ledRouge, 0);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 0);
break;
case 78:
Serial.println("L2");
analogWrite(ledRouge, 0);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 0);
break;
case 68:
Serial.println("D");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 0);
break;
case 69:
Serial.println("D'");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 0);
break;
case 90:
Serial.println("D2");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 255);
analogWrite(ledBleu , 0);
break;
case 66:
Serial.println("B");
analogWrite(ledRouge, 0);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 255);
break;
case 67:
Serial.println("B'");
analogWrite(ledRouge, 0);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 255);
break;
case 65:
Serial.println("B2");
analogWrite(ledRouge, 0);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 255);
break;
case 70:
Serial.println("F");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 255);
break;
case 71:
Serial.println("F'");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 255);
break;
case 72:
Serial.println("F2");
analogWrite(ledRouge, 255);
analogWrite(ledVert , 0);
analogWrite(ledBleu , 255);
break;
}
}
}
En fonction du caractère que je recois, qui est envoyé en ASCII, j'allume un bandeau de LED d'une certaine couleur.
Lorsque je reçois les caractères, j'en reçois à peu près 100 très rapidement ( moins d' 1 sec, le bandeau de led clignote très fortement ) mais ensuite il y en a une couleur qui reste très longtemps ( 5-7 sec environ ) puis ensuite les couleurs défilent mais de manière plus lente ( environ 1 couleur par seconde ). J'ai essayé de changer le nombre de baud mais je ne recevais que des caractères étranges.
Donc voila, quelqu'un sait - il d'où vient le problème et comment le régler ? Merci d'avance.