Étape 8: Déclenchement des moteurs à courant continu par l’intermédiaire de pont en H
Les moteurs avant et arrière sont raccordés à pont en H comme indiqué dans le diagramme ci-dessus et chacune des broches Arduino, qui devraient être définis comme une sortie lors de l’installation, aura une variable assignée :
const int rearMtFw = 4 ; Moteur arrière - FW
const int rearMtBw = 7 ; Moteur arrière - BW
const int rearMtEne = 6 ; L’arrière moteur - activer
const int frontMtLeft = 2 ; Avant moteur - virage à gauche
const int frontMtRight = 3 ; Avant moteur - tourner à droite
const int frontMtEne = 5 ; Enable avant de moteur
Par exemple, si nous voulons avancer la voiture, la fonction "moveForward" devrait mettre la pin 4 fr haute et la broche 7 en bas, cela entraînera actuel s’écouler "sens horaire" comme indiqué dans le second schéma ci-dessus.
Broche 6 est l’option « Activer », uniquement lorsqu’il est en « HIGH », le pont permettra de courant au moteur. Parce que cette broche est un type PWM, la vitesse à laquelle le moteur tournera, dépend de la valeur de la variable « MotorSpeed », à la broche 6 (plage de valeurs de 0 à 255).
La fonction devrait également s’assurer que le moteur avant « tourner librement » et pour cela, la broche 5 qui est la broche « enable » devrait être faible (l’état des broches 2 et 3 n’importent pas, étant donné que l’option Activer est faible). La LED rouge qui fonctionne comme « feu de marche arrière » doit toujours être éteint lorsque la voiture avance :
void moveForward () / / arrière moteur FW
{
analogWrite (rearMtEne, MotorSpeed) ;
digitalWrite (rearMtFw, HIGH) ;
digitalWrite (rearMtBw, basse) ;
digitalWrite (frontMtEne, basse) ;
digitalWrite (ledRed, basse) ;
retard (5) ;
}
Par analogie, il est évident que, pour rendre la voiture « reculer », le moteur doit tourner dans le sens inverse. Pour ce faire, la broche 4 doit être faible et la broche haut 7. Notez que dans ce cas de la « lumière de marche arrière », il devrait être sur. La fonction dans ce cas sera :
void moveBackward () / / arrière moteur BW
{
analogWrite (rearMtEne, MotorSpeed) ;
digitalWrite (rearMtFw, basse) ;
digitalWrite (rearMtBw, HIGH) ;
digitalWrite (frontMtEne, basse) ;
digitalWrite (ledRed, HIGH) ;
retard (5) ;
}
Le même raisonnement peut être utilisé pour le moteur avant, seulement que dans ce cas il n’y a aucun contrôle de la vitesse. Mettre la broche 2 (enable) haute permet au moteur de « essaie de tourner » d’un côté ou l’autre selon l’état des broches 2 et 3 :
void moveLeft () / / avant gauche moteur
{
digitalWrite (frontMtEne, HIGH) ;
digitalWrite (frontMtLeft, HIGH) ;
digitalWrite (frontMtRight, basse) ;
digitalWrite (ledRed, basse) ;
retard (10) ;
}
// ************************************//
void moveRight () / / avant droit moteur
{
digitalWrite (frontMtEne, HIGH) ;
digitalWrite (frontMtLeft, basse) ;
digitalWrite (frontMtRight, HIGH) ;
digitalWrite (ledRed, basse) ;
retard (10) ;
}
Pour arrêter la voiture, il suffit de mettre sorties du pont pour le moteur arrière en bas, qui « attraper » l’arbre du moteur (pour le moteur avant, juste la broche enable devrait être faible) :
void moveStop () / / éteindre moteur arrière
{
analogWrite (rearMtEne, basse) ;
digitalWrite (rearMtFw, basse) ;
digitalWrite (rearMtBw, basse) ;
digitalWrite (frontMtEne, basse) ;
digitalWrite (ledRed, basse) ;
retard (5) ;
}
Dans le lien ci-dessous, vous trouverez le code complet pour l’Arduino :