Étape 7: ARDUINO CODE
CODE DE L’ARDUINO
#include < Servo.h >
Servo servoMain ;
int r_motor_n = 2 ; Commande PWM moteur droit-
int r_motor_p = 4 ; Commande PWM moteur droit +
int l_motor_p = 5 ; Commande PWM moteur gauche +
int l_motor_n = 7 ; Commande PWM moteur gauche-
activez int = 3 ;
int enable2 = 6 ;
int incomingByte = 0 ; pour les données entrantes de série
void setup()
{
servoMain.attach(10) ;
pinMode (r_motor_n, sortie) ; Broches de contrôle pour être sorties
pinMode (r_motor_p, sortie) ;
pinMode (l_motor_p, sortie) ;
pinMode (l_motor_n, sortie) ;
pinMode (active, sortie) ;
pinMode (enable2, sortie) ;
digitalWrite (r_motor_n, basse) ; partent les deux moteurs pour démarrage
digitalWrite (r_motor_p, basse) ;
digitalWrite (l_motor_p, basse) ;
digitalWrite (l_motor_n, basse) ;
digitalWrite (enable, faible) ;
digitalWrite (enable2, basse) ;
Serial.Begin(9600) ;
Serial.Print ("Whats up im ATOM, orientée vers le haut!!! \n");
Serial.Print ("w = avant \n") ;
Serial.Print ("s = descendante \n") ;
Serial.Print ("d = droite \n") ;
Serial.Print ("a = gauche \n") ;
Serial.Print (« f = Stop \n ") ;
Serial.Print ("stive robotique") ;
}
void loop()
{
Si (Serial.available() > 0) {}
lire les octets entrants :
incomingByte = Serial.read() ;
}
Switch(incomingByte)
{
case « f » :
digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 basse, 2 de haut
digitalWrite (r_motor_p, basse) ;
digitalWrite (l_motor_p, basse) ;
digitalWrite (l_motor_n, basse) ;
digitalWrite (enable, faible) ;
digitalWrite (enable2, basse) ;
Serial.println("Stop\n") ;
incomingByte ='* ' ;
rupture ;
affaire aurait ":
digitalWrite (r_motor_n, HIGH) ; Définissez la direction moteur, 1 basse, 2 de haut
digitalWrite (r_motor_p, basse) ;
digitalWrite (l_motor_p, HIGH) ;
digitalWrite (l_motor_n, basse) ;
digitalWrite (enable, HIGH) ;
digitalWrite (enable2, HIGH) ;
Serial.println("right\n") ;
incomingByte ='* ' ;
rupture ;
case « a » :
digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 basse, 2 de haut
digitalWrite (r_motor_p, HIGH) ;
digitalWrite (l_motor_p, basse) ;
digitalWrite (l_motor_n, HIGH) ;
digitalWrite (enable, HIGH) ;
digitalWrite (enable2, HIGH) ;
Serial.println("left\n") ;
incomingByte ='* ' ;
rupture ;
case « w » :
digitalWrite (r_motor_n, HIGH) ; Définissez la direction moteur, 1 basse, 2 de haut
digitalWrite (r_motor_p, basse) ;
digitalWrite (l_motor_p, basse) ;
digitalWrite (l_motor_n, HIGH) ;
digitalWrite (enable, HIGH) ;
digitalWrite (enable2, HIGH) ;
Serial.println("forward\n") ;
incomingByte ='* ' ;
rupture ;
de l’affaire ":
digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 basse, 2 de haut
digitalWrite (r_motor_p, HIGH) ;
digitalWrite (l_motor_p, HIGH) ;
digitalWrite (l_motor_n, basse) ;
digitalWrite (enable, HIGH) ;
digitalWrite (enable2, HIGH) ;
Serial.println("backwards\n") ;
incomingByte ='* ' ;
rupture ;
affaire « 1 » :
servoMain.write(0) ;
rupture ;
affaire « 2 » :
servoMain.write(45) ;
rupture ;
affaire « 3 » :
servoMain.write(90) ;
rupture ;
affaire « 4 » :
servoMain.write(135) ;
rupture ;
affaire « 5 » :
servoMain.write(180) ;
rupture ;
case « v » :
Serial.Print ("atom") ;
Serial.println() ;
Serial.Print ("atome de stive robotique") ;
incomingByte ='* ' ;
rupture ;
Delay(5000) ;
}
}
REMARQUE
Si des problèmes avec le code, son ne testé donc aucun problème.
Laisser des commentaires
POUR réduire la variation de la vitesse
digitalWrite(enable,HIGH) ;
digitalWrive(enable2,HIGH) ;
À
analogWrite(value)
valeur doit être égale à 0-255 fera n’importe quelle valeur 255 est maximale et 0 est minimale.