Étape 13 : Conduite des moteurs
Moteurs à courant continu
Avec les techniques expliquées dans l’étape précédente, vous pouvez seulement faire tourner le moteur dans un sens. Pour changer la direction, vous aurez besoin d’un H-brigde (parfois appelé un pont complet). Il se compose de 2 N 2-canaux et 2 transistors PNP ou NPN et FETs 2p-canal.
Jetez un oeil à l’image pour un circuit MOSFET H-pont typique.
Remarque : vous ne pouvez pas il suffit de remplacer les MOSFET dans ce schéma par transistors : Transistors ont besoin de base actuel, FETs besoin porte tension.
Découvrons comment fonctionne ce circuit :
Nous l’appellerons la gauche entrée d’entrée A et celui de droite d’entrée B.
Lors de l’entrée A est faible, le transistor Q1 ne conduite. Cela signifie que les portes du Q2 et Q3 sont élevés (ils sont connectés à VSS à travers R1). T3 est un MOSFET à canal N, alors il commence à mener (parce qu’il a une tension porte positive). Q2 est un MOSFET canal P, donc il n’est pas conduite (car il n’a aucune différence de tension entre la porte et la source, les deux sont reliées au VSS).
La borne gauche du moteur est connectée à la terre, par l’intermédiaire de Q3.
Lors de l’entrée B est élevée, mène des T4. Cela signifie que les portes du Q5 et Q6 sont faibles. (Ils sont connectés à la terre par l’intermédiaire de T4, et R2 n’est pas grave dans ce cas). Q6 est un MOSFET à canal N, donc il n’est pas conduite (car il n’a aucune différence de tension entre la porte et la source, les deux sont reliées à la terre).
Q5 est un MOSFET canal P, alors il commence à mener (parce qu’il a une tension grille négative, par rapport à la source).
La borne droite du moteur est maintenant connectée à V,SS , par le biais de Q5.
Dans ce cas, le moteur tournera dans le sens anti-horaire.
La deuxième image est un circuit équivalent pour cette situation.
Vous pouvez déjà deviner que si l’entrée A est élevée, et B est faible, le moteur tournera dans le sens horaire. Si A et B sont tous deux de haute ou de deux basses, le moteur pas d’essorage, parce que les deux bornes sont reliées à VSS ou au sol. (donc pas de différence de tension)
Bien que vous pourriez construire ce circuit vous-même, il est beaucoup plus facile d’utiliser un circuit intégré. Par exemple, j’ai eu quelques jetons L6202 sur une vieille imprimante. Un autre pont en H puce est L298 ou L293.
Ils se connectent directement à 2 broches numériques de l’Arduino, et la plupart d'entre eux ont également une broche « activer », que vous pouvez utiliser avec une troisième broche de pwm, pour contrôler la vitesse du moteur.
Adafruit a un très bon tutoriel sur la façon de les utiliser : https://learn.adafruit.com/adafruit-arduino-lesson...
Moteurs pas à pas
Un autre moteur couramment utilisé est le moteur pas à pas.
Un moteur à courant continu normal a une filature de bobine à l’intérieur de deux aimants permanents. Moteurs pas à pas ont d’autre part, un aimant mobile (le rotor) et quelques bobines fixes (le stator). En activant les bobines dans un ordre spécifique, le rotor tourne.
Les vidéos suivantes vous aideront à comprendre comment il fonctionne :
Pour conduire un unipolairemoteurs pas à pas, vous aurez juste besoin de 4 transistors NPN ou 4 MOSFET canal N. (Voir l’image)
Pour trouver le brochage de votre stepper, regarder vers le haut de la feuille de données, ou utiliser un multimètre et mesurer la résistance entre les fils. Certaines combinaisons de fil aura une résistance qui est 2 fois plus élevée que les autres, ce sont les deux fils extérieurs dans le schéma.
Connectez les fils de deux centre le fil positif de l’alimentation et les câbles extérieurs vers les collecteurs des transistors en voiture (voir schéma). Calculer les résistances de base appropriées, comme cela est expliqué dans l’étape précédente et reliez-les aux broches 8, 9, 10 et 11 de l’Arduino. N’oubliez pas de connecter la terre de l’alimentation au sol de votre Arduino.
Pour conduire un bipolairemoteurs pas à pas, vous aurez besoin de 2 H-ponts. Reliez les sorties de chaque pont en H à une bobine du stepper. Raccorder les entrées des H-ponts aux broches 8, 9, 10 et 11 de l’Arduino. N’oubliez pas de connecter la terre de l’alimentation au sol de votre Arduino. Raccorder la canalisation enable VSS.
Remarque : moteurs pas à pas attirent beaucoup de courant, vous ne pouvez pas utiliser l’alimentation à bord de l’Arduino. Vous devez également utiliser des transistors de puissance ou MOSFET. Vérifier la température des transistors et ajouter un dissipateur de chaleur si nécessaire.
Maintenant, ouvrez l’exemple de stepper_oneRevolution (fichier > exemples > Stepper) et changer le nombre de pas par tour pour correspondre à votre moteur.
En haut du fichier, il y a une ligne
#include <stepper.h >
Cela ajoute juste le code o le fichier Stepper.h à l’esquisse, pour vous pouvez d’utiliser ses fonctions. C’est ce qu’on appelle le stepper bibliothèque.
Sur la ligne 24, nous créons une instance de la Stepper classe. L’instance est appelée "myStepper" (ce nom est simplement arbitraire), et dispose de 5 paramètres : le nombre d’étapes en un tour (360°) et les 4 broches qui se connectent aux bases des transistors.
Une classe possède un ensemble de fonctions, pour exécuter une fonction pour certaine une instance, une période (arrêt complet) est utilisée : instance.function(arguments) ;
myStepper.setSpeed(60) ;
N’oubliez pas de Serial.print (...) ? Cela fonctionne de manière similaire.
La funnction setSpeed(rpm) règle la vitesse, dans les rotations par minute (donc elle dépend du nombre de pas par tour).
Une autre fonction de la classe de Stepper est step(steps), il tourne tout le moteur pour un nombre donné d’étapes. Si ce nombre est positif, elle se déplacera vers la droite, que si elle est négative, elle se déplacera vers la gauche.
Télécharger l’exemple à l’Arduino, et le moteur devrait tourner à 360° dans le sens horaire, puis 360° vers la gauche, et ainsi de suite. S’il ne tourne pas, mais seulement vibre, essayez d’échanger 2 broches de sortie, jusqu'à ce que ça marche. Vous pouvez échanger les broches physiques à l’Arduino, ou il suffit de changer l’ordre de broche sur la ligne 24. (p. ex., 9, 8, 10, 11 au lieu de 8, 9, 10, 11)
L’utilisation de classes rend très facile à créer plusieurs instances de moteur pas à pas. Jetez un oeil à l’exemple _2steppers_oneRevolution.
Quand un stepper ne bouge pas, elle gardera une bobine sur le bloc moteur, donc il ne bouge pas. Cela attire beaucoup de courant, cependant, et le stepper elle-même et les transistors peuvent devenir très chaudes.
Pour arrêter cela, vous pouvez seulement effectuer un digitalWrite (broches, basse) sur les 4 broches du stepper.
Si vous utilisez un lecteur IC (comme un pont en H ou un tableau de darlington), vous pouvez aussi vous connecter la broche enable à votre Arduino. Si vous la définissez élevée, le moteur sera activé, et lorsque vous définissez il est faible, il n’y aura aucun tension sur le moteur du tout.
Vous pouvez créer votre propre petite fonction pour mettre du stepper, comme dans l’exemple Stepper_stop
{voidstepperOff()}
digitalWrite(8,LOW) ;
digitalWrite(9,LOW) ;
digitalWrite(10,LOW) ;
digitalWrite(11,LOW) ;
}
Vous pouvez faire des fonctions que faire à peu près n’importe quoi, par exemple, si vous devez exécuter une certaine série de commandes plusieurs fois dans votre programme. Un bon tutoriel sur les classes, des fonctions et des bibliothèques est le tutoriel de bibliothèque sur le Arduin