Etape 14 : Le code - envoi/Reciveing de données série
Première fois je pensais à envoyer une grande chaîne, quelque chose comme « th110br55st80rev1light0-début-fin » et dans l’autre aduino pour décoder et vérifier si la chaîne est corect comme, si elle commence par « démarrer », se termine par « fin » et si il nantis le "th", "st"... à l’intérieur. Mais je deviens paresseux et je viens d’utiliser le Serial.parseInt().J’ai envoyer normal, avec serial.print() et après l’envoi d’une seule valeur, j’ai envoyer un «, » (coma). Les choses que vous devez envoyer de télécommande sont : papillon, briser, steer, inverser, lumière. Et vous avez besoin de recevoir de la voiture : tr/min, batterie logique, moteur et batterie
void reciveData() {}
Si (Serial.available() > 0) {}
int x = Serial.parseInt() ;
Si (x > 1) {(car_bat_motor = x/100.00)-1.00;}
x = Serial.parseInt() ;
Si (x > 1) {(car_bat_controler = x/100.00)-1.00;}
x = Serial.parseInt() ;
Si (x > 1) {t/mn = x-1;}
Si (x == (tr/min + 1)) {}
pour (; Serial.available();){
char y = Serial.read() ;
}
}
recived = 1 ;
}
Si {(recived)
sendData() ;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void sendData() {}
Serial.Print("t") ;
Serial.Print(Throttle+1) ;
Serial.Print("b") ;
Serial.Print(break_+1) ;
Serial.Print("s") ;
Serial.Print(STEAR+1) ;
Serial.Print("r") ;
Serial.Print(EEPROMReadInt(76)+1) ;
Serial.Print("l") ;
Serial.Print(EEPROMReadInt(72)+1) ;
Serial.println("End") ;
recived = 0 ;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
J’ai mis le sendData() dans le code à distance et dans le code du récepteur une fois en void setup() et puis dans la boucle d’envoyer des données uniquement si elle reçoit tout d’abord. Comme cela si vous avez le pouvoir de récepteur de voiture est off et distant est activé, la télécommande ne sera pas envoyer les données jusqu'à ce que vous mettez sous tension le récepteur.
Aussi quand envoi flotteur je préfère l’envoyer comme un int (7,22 v je l’envoyer comme ça Serial.print(voltage *100)) et quand je la recevrai j’ai diviser il à 100. Et quand je l’envoie j’ai ajouter 1 (+ 1) comme ça je fais ne pas envoyé "0" parseInt() ne vais pas aller fou, quand je la recevrai j’ai soustrait 1 dos: P (-1).