Étape 4: Code d’Arduino
int motor1Pin2 = 4 ; Broche 7 sur IC L293D
int enable1Pin = 6 ; broche 1 L293D IC
int motor2Pin1 = 8 ; broche 10 sur IC L293D
int motor2Pin2 = 9 ; broche 15 sur IC L293D
int enable2Pin = 11 ; broche 9 sur IC L293D
État int ;
drapeau de l’int = 0 ; permet de s’assurer que le numéro de série s’imprime uniquement une fois l’État
int CroatieTOP = 0 ;
void setup() {}
définit les broches comme sorties :
pinMode (motor1Pin1, sortie) ;
pinMode (motor1Pin2, sortie) ;
pinMode (enable1Pin, sortie) ;
pinMode (motor2Pin1, sortie) ;
pinMode (motor2Pin2, sortie) ;
pinMode (enable2Pin, sortie) ;
séries enable1Pin et enable2Pin haut afin que le moteur peut tourner :
digitalWrite (enable1Pin, HIGH) ;
digitalWrite (enable2Pin, HIGH) ;
initialiser une communication série 9600 bits par seconde :
Serial.Begin(9600) ;
}
void loop() {}
Si une date est envoyée, le lit et enregistre dans l’État
if(Serial.available() > 0) {}
État = Serial.read() ;
drapeau = 0 ;
}
Si l’État est « 1 » le moteur à courant continu va aller de l’avant
Si (État == « 1 ») {}
digitalWrite (motor1Pin1, HIGH) ;
digitalWrite (motor1Pin2, basse) ;
digitalWrite (motor2Pin1, basse) ;
digitalWrite (motor2Pin2, HIGH) ;
if(flag == 0) {}
Serial.println ("aller de l’avant!") ;
drapeau = 1 ;
}
}
Si l’État est « 2 » le moteur vous tournez à gauche
ElseIf (État == « 2 ») {}
digitalWrite (motor1Pin1, HIGH) ;
digitalWrite (motor1Pin2, basse) ;
digitalWrite (motor2Pin1, basse) ;
digitalWrite (motor2Pin2, basse) ;
if(flag == 0) {}
Serial.println ("tournez à gauche") ;
drapeau = 1 ;
}
Delay(1500) ;
État = 3 ;
CroatieTOP = 1 ;
}
Si l’État est « 3 » le moteur s’arrête
ElseIf (État == « 3 » || CroatieTOP == 1) {}
digitalWrite (motor1Pin1, basse) ;
digitalWrite (motor1Pin2, basse) ;
digitalWrite (motor2Pin1, basse) ;
digitalWrite (motor2Pin2, basse) ;
if(flag == 0) {}
Serial.println("Stop!") ;
drapeau = 1 ;
}
CroatieTOP = 0 ;
}
Si l’État est « 4 » le moteur va tourner à droit
ElseIf (État == « 4 ») {}
digitalWrite (motor1Pin1, basse) ;
digitalWrite (motor1Pin2, basse) ;
digitalWrite (motor2Pin1, basse) ;
digitalWrite (motor2Pin2, HIGH) ;
if(flag == 0) {}
Serial.println ("tournez à droite") ;
drapeau = 1 ;
}
Delay(1500) ;
État = 3 ;
CroatieTOP = 1 ;
}
Si l’État est « 5 » reviendra sur le moteur
ElseIf (État == « 5 ») {}
digitalWrite (motor1Pin1, basse) ;
digitalWrite (motor1Pin2, HIGH) ;
digitalWrite (motor2Pin1, HIGH) ;
digitalWrite (motor2Pin2, basse) ;
if(flag == 0) {}
Serial.println("Reverse!") ;
drapeau = 1 ;
}
}
Pour le débogage de but
Serial.println(State) ;
}