Étape 3: Arduino Motorshield
Une fois votre flasque arrière est connecté, il devient une question de programmation votre arduino :
const int DIRB = 13 ; ensembles de gauche en direction de moteur
const int DIRA = 12 ; définit le sens du moteur droit
const int PWMB = 11 ; analogique ; définit la vitesse du moteur
const int PW101 = 3 ; analogique ; définit la vitesse du moteur
int PWMAfwd, PWMArev, PWMAleft, PWMAright, PWMAhalt, PWMBfwd, PWMBrev, PWMBleft, PWMBright ;
void setup() {}
pinMode (DIRB, sortie) ;
pinMode (PWMB, sortie) ;
pinMode (PW101, sortie) ;
pinMode (DIRA, sortie) ;
Serial.Begin(9600) ;
PWMAfwd = 200 ; utilisé pour tailler les motorspeeds pour les exécutions différentes de robot
PWMBfwd = 255 ;
PWMArev = 200 ;
PWMBrev = 255 ;
PWMAleft = 200 ;
PWMBleft = 255 ;
PWMAright = 200 ;
PWMBright = 255 ;
}
Sub fwd () {//sets moteurs de transmettre
digitalWrite (DIRA, élevé) ;
digitalWrite (DIRB, élevé) ;
analogWrite (PW101, PWMAfwd) ;
analogWrite (PWMB, PWMBfwd) ;
}
Sub rev () {//sets moteurs pour inverser
digitalWrite (DIRB, faible) ;
digitalWrite (DIRA, faible) ;
analogWrite (PWMB, PWMBrev) ;
analogWrite (PW101, PWMArev) ;
}
vide laissé () {bot de //turns a laissé sur place
digitalWrite (DIRB, faible) ;
digitalWrite (DIRA, élevé) ;
analogWrite (PWMB, PWMBleft) ;
analogWrite (PW101, PWMAleft) ;
}
void droite () {/ / tourne bot droite sur place
digitalWrite (DIRB, élevé) ;
digitalWrite (DIRA, faible) ;
analogWrite (PWMB, PWMBright) ;
analogWrite (PW101, PWMAright) ;
}
halt Sub () {//stops moteurs
digitalWrite (PWMB, basse) ;
digitalWrite (PW101, basse) ;
}
void directiontest () {}
FWD () ;
retarder (1000) ;
stopper () ;
retarder (1000) ;
Rev () ;
retarder (1000) ;
stopper () ;
retarder (1000) ;
(de gauche) ;
retarder (1000) ;
stopper () ;
retarder (1000) ;
(de droite) ;
retarder (1000) ;
stopper () ;
retarder (1000) ;
}
void loop () {}
directiontest() ;
}
Si les mouvements de votre bot ne correspond pas à vos noms de fonction, vous pouvez re positionner les câbles du moteur afin que les direction broche haute ensembles d’écriture avant les moteurs, ou vous pouvez l’ajuster dans votre programme.
Il n’est pas nécessaire de définir des variables pour chaque processus de modulation de largeur impulsion, mais je voulais être en mesure de régler les vitesses de moteurs dans différentes fonctions.