Etape 4: Ard-e sur Auto : utilisez le Ardunio pour piloter les moteurs à courant continu
La puce prend essentiellement trois entrées, une entrée PWM qui règle la vitesse du moteur et tourne sur et en dehors et deux entrées qui déterminent l’orientation que le moteur tourne. La goupille PWM est l’activation de la L293, les deux broches qui déterminent la direction des tours moteurs sont les entrées 1 a et 2 a. Les moteurs sont raccordés à le 1Y sorties et 2 Y. Le L293 peut contrôler deux moteurs à courant continu, donc une fois que vous l’obteniez raccordé à l’Arduino Ard-e peut conduire lui-même.
La fiche pour le L293 peut être trouvée à http://www.datasheetcatalog.com/datasheets_pdf/L/2/9/3/L293.shtml
J’ai fini par commander deux des puces L293 de www.mouser.com et ils m’a coûté environ 7 $. Après quelques heures de tâtonnements, j’ai finalement obtenu l’Arduino pour piloter les deux Ard-e moteurs. J’ai n’a pas lu la fiche avec suffisamment d’attention parce que j’étais initialement avec 3V pour essayer d’exécuter le L293 lorsqu’il évidemment (maintenant au moins son évidente) a besoin d’au moins 5 volts. Alors, après de nombreux voyages à www.Arduino.cc Voici le code que j’ai utilisé pour l’essai routier d’Ard-e motors :
int diraPin = 10 ;
int dirbPin = 9 ; Ces deux doivent faire face à des valeurs numériques pour faire tourner le moteur si elles sont aussi bien haut ou les deux bas puis le moteur est en fait freiné.
int enablePin = 11 ; Cet axe définit la vitesse du moteur et doit être une goupille PWM.
int dira2Pin = 2 ;
int dirb2Pin = 3 ;
int enable2Pin = 5 ; Ils sont utilisés de la même manière de conduire le deuxième moteur.
int val = 0 ; Variable utilisée pour régler la vitesse des moteurs.
void setup() {}
pinMode (diraPin, sortie) ;
pinMode (dirbPin, sortie) ;
pinMode (enablePin, sortie) ;
pinMode (dira2Pin, sortie) ;
pinMode (dirb2Pin, sortie) ;
pinMode (enable2Pin, sortie) ; Toutes les broches déclare comme sorties.
}
void loop() {}
Val = 175 ; Une valeur utilisée pour régler la vitesse du moteur, environ 70 % de sa vitesse.
Faites tourner le moteur 1 vers l’arrière pendant une seconde
analogWrite (enablePin, val) ; Régler la vitesse des moteurs avec PWM
digitalWrite (diraPin, basse) ;
digitalWrite (dirbPin, HIGH) ;
Faites tourner le moteur 2 vers l’arrière pendant une seconde
analogWrite (enable2Pin, val) ;
digitalWrite (dira2Pin, basse) ;
digitalWrite (dirb2Pin, HIGH) ;
Delay(1000) ; Si vous changez de quel axe de direction est élevé et qui est faible le moteur tournera une direction différente.
Faites tourner le moteur 1 avant pendant une seconde
digitalWrite (diraPin, HIGH) ;
digitalWrite (dirbPin, basse) ;
Faites tourner le moteur 2 vers l’avant pendant une seconde
digitalWrite (dira2Pin, HIGH) ;
digitalWrite (dirb2Pin, basse) ;
Delay(1000) ;
arrêt pendant une seconde
Val = 0 ;
analogWrite (enablePin, val) ;
analogWrite (enable2Pin, val) ;
Delay(1000) ;
}
Afin de tester ce point sur Ard-e j’ai fini par mettre une maquette sur l’addition qui détenait auparavant le système pan et tilt. Je me suis également déplacé Arduino droite à côté de la maquette pour le prototypage facile. J’ai aussi dû ajouter un autre deux piles AA si le le L293 aurait le 6V il a besoin pour alimenter les moteurs.
Voici un petit vidéo de l’Ard-e exécution de ce programme. Un des moteurs tourne plus rapidement que l’autre alors qu’il s’oriente vers la caméra vers la fin de celui-ci. Je ne sais pas vraiment pourquoi cela arrive...
Pour une fois que vous écrivez tout le code et réorganiser les éléments pour rendre l’Arduino patron autour du L293 et obtenir ces satanés moteurs à courant continu sous contrôle Ard-e possible utilise augmentation spectaculaire. Tout ce que vous devez maintenant sont des capteurs.