Bonjour, je suis sur un projet de voiture télécommandé avec mon téléphone via l'application Arduino BT joystick, le probleme c'est que j'ai quelques problemes a chaque fois que je veux tourner, la voiture ralenti beaucoup voir s'arrete, le probleme vient de la reception des donées, en efet je recois a chaque nouvelle boucle loop un valeur d'une chaine de donée, en gros, le téléphone envoi #a=0# et l'arduino traite que 1 valeur a chaque fois (1ere boucle #, 2eme boucle a, .... )et moi je veux me servir que du 0 donc mon code supprime le reste mais apres ya tj des problemes, si quelqun pouvait m'aider
int motor1Pin1 = 3; // pin 1 on L298D
int motor1Pin2 = 4; // pin 2 on L298D
int motor2Pin1 = 6; // pin 3 on L298D
int motor2Pin2 = 7; // pin 4 on L298D
char a;
char b;
void setup()
{
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
Serial.begin(9600);
}
void loop() // run over and over
{
if (Serial.available()) {
char c = Serial.read();
if(c == '0'){
a = '0';
}
else if(c == '1'){
a = '1';
}
else if(c == '2'){
a = '2';
}
else if(c == '3'){
a = '3';
}
else if(c == '4'){
a = '4';
}
Serial.write(a);
if(a == '0' || b == '0'){ // avancer
digitalWrite(motor1Pin2, LOW); // set pin 2 on L293D low
digitalWrite(motor1Pin1, HIGH);
}
else if(a == '2' || b == '2'){ // reculer
digitalWrite(motor1Pin2, HIGH); // set pin 2 on L293D low
digitalWrite(motor1Pin1, LOW);
}
else { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW);}
if(a == '3' || b == '3'){ // gauche
digitalWrite(motor2Pin2, LOW); // set pin 2 on L293D low
digitalWrite(motor2Pin1, HIGH);
}
else if(a == '4' || b == '4'){ //droite
digitalWrite(motor2Pin2, HIGH); // set pin 2 on L293D low
digitalWrite(motor2Pin1, LOW);
}
else { digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW);}
if(a!=b){
b = a;
}
Serial.write(b);
}}
[code/]