Étape 6: Programmation de l’Arduino
int M1_A = 4 ; variable pour moteur tournant à armure
int M1_B = 5 ; variable pour moteur tournant à armure
int M2_A = 8 ; variable pour les moteurs de traction gauche
int M2_B = 9 ; variable pour les moteurs de traction gauche
int M3_A = 10 ; variable pour les moteurs de traction droite
int M3_B = 11 ; variable pour les moteurs de traction droite
variable pour stocker des données en série
int incomingByte = 0 ;
void setup()
{
Démarrez l’analyseur de série à 9600 bps
Serial.Begin(9600) ; Modifiez cette valeur selon la vitesse de transmission de votre module bluetooth
pinMode (M1_A, sortie) ;
pinMode (M1_B, sortie) ;
pinMode (M2_A, sortie) ;
pinMode (M2_B, sortie) ;
pinMode (M3_A, sortie) ;
pinMode (M3_B, sortie) ;
désactiver les moteurs par défaut
M1_stop() ;
M2_stop() ;
M3_stop() ;
Delay(500) ;
}
////////////////////////////////////
void loop()
{
Si (Serial.available() > 0)
{
lire les octets entrants :
incomingByte = Serial.read() ;
retard de 25 millisecondes pour laisser le temps de mise à jour de série
Delay(25) ;
Si (incomingByte == 32) / / si l’octet est égal barre d’espace, mettre un terme.
{
Serial.println("Stop") ;
M2_stop() ;
M3_stop() ;
Delay(25) ;
}
Si (incomingByte == 67) //if octets entrants de téléphone Android est égal à « C », halte.
{
Serial.println("Stop") ;
M2_stop() ;
M3_stop() ;
Delay(25) ;
}
Si (incomingByte == 99) / / si l’octet est égal à « c », tourner dans le sens horaire Rotor
{
M1_Clock() ;
Delay(25) ;
}
Si (incomingByte == 101) //if octets entrants de téléphone Android est égale à « e », tourner le Rotor dans le sens horaire
{
M1_Clock() ;
Delay(25) ;
}
Si (incomingByte == 118) / / si l’octet est égal à « v », tourner le Rotor aiguilles
{
M1_AntClock() ;
Delay(25) ;
}
Si (incomingByte == 102) //if octets entrants de téléphone Android est égale à « f », tourner le Rotor aiguilles
{
M1_AntClock() ;
Delay(25) ;
}
Si (incomingByte == 120) / / si l’octet est égal à « x », arrêt de rotation du Rotor
{
M1_stop() ;
Delay(25) ;
}
Si (incomingByte == 103) //if octets entrants de téléphone Android est égale à « g », arrêtez de tourner le Rotor
{
M1_stop() ;
Delay(25) ;
}
Si l’octet est égal à « w », aller de l’avant
ElseIf (incomingByte == 119)
{
Serial.println("Forward") ;
M2_forward() ;
M3_forward() ;
Delay(25) ;
}
ElseIf (incomingByte == 85) / / si les octets entrants de téléphone Android est égal à « U », aller de l’avant
{
Serial.println("Forward") ;
M2_forward() ;
M3_forward() ;
Delay(25) ;
}
Si l’octet est égal à « a », tourner à gauche
ElseIf (incomingByte == 97)
{
Serial.println("left") ;
M2_reverse() ;
M3_forward() ;
Delay(25) ;
}
Si les octets entrants de téléphone Android est égal à « L », tourner à gauche
ElseIf (incomingByte == 76)
{
Serial.println("left") ;
M2_reverse() ;
M3_forward() ;
Delay(25) ;
}
Si l’octet est égal à « d », aller à droite
ElseIf (incomingByte == 100)
{
Serial.println("Right") ;
M2_forward() ;
M3_reverse() ;
Delay(25) ;
}
Si les octets entrants de téléphone Android est égal à « R », aller à droite
ElseIf (incomingByte == 82)
{
Serial.println("Right") ;
M2_forward() ;
M3_reverse() ;
Delay(25) ;
}
Si l’octet est égal à « s », allez inverse
ElseIf (incomingByte == 115)
{
Serial.println("Reverse") ;
M2_reverse() ;
M3_reverse() ;
Delay(25) ;
}
Si les octets entrants de téléphone Android est égal à « D », aller inverse
ElseIf (incomingByte == 68)
{
Serial.println("Reverse") ;
M2_reverse() ;
M3_reverse() ;
Delay(25) ;
}
d’autre
{
Serial.println("Stop") ;
M2_stop() ;
M3_stop() ;
Delay(25) ;
}
}
}
Sub M1_Clock()
{
digitalWrite (M1_B, basse) ;
digitalWrite (M1_A, élevé) ;
}
Sub M1_AntClock()
{
digitalWrite (M1_A, basse) ;
digitalWrite (M1_B, élevé) ;
}
Sub M2_forward()
{
digitalWrite (M2_A, élevé) ;
digitalWrite (M2_B, basse) ;
}
Sub M2_reverse()
{
digitalWrite (M2_A, basse) ;
digitalWrite (M2_B, élevé) ;
}
Sub M3_forward()
{
digitalWrite (M3_A, élevé) ;
digitalWrite (M3_B, basse) ;
}
Sub M3_reverse()
{
digitalWrite (M3_A, basse) ;
digitalWrite (M3_B, élevé) ;
}
Sub M1_stop()
{
digitalWrite (M1_B, basse) ;
digitalWrite (M1_A, basse) ;
}
Sub M2_stop()
{
digitalWrite (M2_B, basse) ;
digitalWrite (M2_A, basse) ;
}
Sub M3_stop()
{
digitalWrite (M3_B, basse) ;
digitalWrite (M3_A, basse) ;
}