Table des matières:
- Étape 1: Liste des pièces
- Étape 2: Les pièces principales
- Étape 3: Faites-le fonctionner
- Étape 4: Contrôle de la vitesse
- Étape 5: Démarrer / Arrêter
- Étape 6: Contrôle de la direction
- Étape 7: Conclusions
Vidéo: Conduire un moteur pas à pas sans microcontrôleur. : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Dans ce Instructable, je vais conduire un moteur pas à pas 28-BYJ-48, avec une carte de tableau de Darlington UNL2003, parfois nommé x113647, sans micro-contrôleur.
Il aura un contrôle de démarrage/arrêt, avant/arrière et vitesse.
Le moteur est un moteur pas à pas unipolaire avec 2048 pas par tour en mode pas complet. La fiche technique du moteur se trouve sur
Les deux appareils peuvent être achetés ensemble auprès de plusieurs fournisseurs. J'ai le mien sur kjell.com
Bing it ou google pour trouver un fournisseur près de chez vous.
Je vais d'abord passer en revue certaines étapes et pièces nécessaires pour le faire fonctionner, puis ajouter quelques étapes et pièces pour plus de contrôle.
Vous devez être averti que les pièces que j'utilise sont celles que j'ai dans mon coffre au trésor, et pas nécessairement les pièces les mieux adaptées à l'usage.
En outre, vous devez être averti qu'il s'agit de mon premier Instructable et que je suis assez nouveau en électronique.
Veuillez ajouter des commentaires si vous pensez que j'ai fait quelque chose que je ne devrais pas, ou si vous avez des suggestions d'améliorations ou des suggestions de pièces mieux adaptées.
Étape 1: Liste des pièces
Les pièces utilisées pour ce projet sont
- Planche à pain
- Moteur pas à pas 28byj-48
- Carte ULN2003 à matrice de transistors Darlington (x113647)
- Registre à décalage 74HC595
- Compteur d'ondulation binaire 74HC393
- Potentiomètre numérique DS1809-100 Dallastat
- Tampon octal 74HC241
- 3 × boutons tactiles
- 3 résistances 10kΩ
- 2 condensateurs céramiques 0,1µF
- 1 × 0,01 µF condensateur céramique
- Fils de connexion
- Alimentation 5V
Étape 2: Les pièces principales
Le registre à décalage 74HC595
Le moteur est déplacé en donnant à plusieurs reprises aux quatre broches d'entrée de la carte UNL2003 cette séquence:
1100-0110-0011-1001
Cela entraînera le moteur dans ce qu'on appelle le mode pas à pas complet. Le motif 1100 est décalé à plusieurs reprises vers la droite. Cela suggère un registre à décalage. Le fonctionnement d'un registre à décalage est que, à chaque cycle d'horloge, les bits du registre se décalent d'une place vers la droite, remplaçant le bit le plus à gauche par la valeur de la broche d'entrée à ce moment-là. Par conséquent, il doit être alimenté avec deux cycles d'horloge de 1 puis deux cycles d'horloge de 0 pour générer le modèle de plongée du moteur.
Pour générer les signaux d'horloge, un oscillateur est nécessaire, qui génère une série constante d'impulsions, de préférence une onde carrée propre. Cela formera la base du motif de changement de signaux vers le moteur.
Pour générer les "deux cycles d'un puis deux cycles de 0", des bascules sont utilisées.
J'ai un registre à décalage 74HC595. Il s'agit d'une puce très populaire, décrite dans de nombreuses vidéos Instructables et Youtube.
La fiche technique est disponible sur
Un joli Instructable est 74HC595-Shift-Register-Demistified par bweaver6, Le registre à décalage 74HC595 fonctionne de sorte qu'à chaque cycle d'horloge, les données de son registre 8 bits soient décalées vers la droite et la valeur de la broche d'entrée à la position la plus à gauche soit décalée. Par conséquent, il devrait être alimenté avec deux cycles d'horloge de 1 puis deux cycles d'horloge de 0.
Les données sont décalées sur le front montant de l'impulsion d'horloge. Par conséquent, la bascule doit basculer sur le front descendant de l'horloge, de sorte que le 74HC595 aura une entrée de données stable sur le front montant de l'horloge.
Le 74HC595 in peut être câblé comme ceci:
Broche 8 (GND) -> GND
Pin 16 (VCC) -> 5V Pin 14 (SER) -> Data in Pin 12 (RCLK) -> Clock input Pin 11 (SRCLK) -> Clock input Pin 13 (OE) -> GND Pin 10 (SRCRL) -> Les broches 5V 15 et 1-3 produiront le motif pour entraîner le moteur.
La connexion de RCLK et SRCLK garantit que le registre de données de puce est toujours synchronisé avec le registre de sortie. Mettre la broche 13 à la terre rend le contenu du registre de sortie immédiatement visible pour les broches de sortie (Q0 - Q7).
La minuterie 555
Pour générer l'impulsion d'horloge, la puce de minuterie 555 peut être utilisée. C'est aussi une puce très populaire, et elle est encore plus décrite et discutée que le registre à décalage. Wikipedia a un bel article sur
La fiche technique est ici:
Cette puce peut, entre autres, générer une impulsion d'horloge à onde carrée. Des résistances et des condensateurs externes sont utilisés pour contrôler la fréquence et le rapport cyclique (sur-fraction).
Lorsqu'elle est configurée pour générer à plusieurs reprises des impulsions, la puce 555 est dite en mode astable. Cela se fait en le câblant comme dans l'image ci-dessus. (photo de jjbeard [domaine public], via Wikimedia Commons):
Broche 1 -> GND
Pin 2 -> R1 (10kΩ) -> Pin 7 Pin 2 -> Pin 6 Pin 3 est la sortie Pin 4 (reset) -> 5V Pin 5 -> 0.01µF -> GND Pin 6 -> 0.1µF -> GND Pin 7 -> R2 (10kΩ) -> 5V Broche 8 -> 5V
La sortie de la broche 3 sera connectée aux broches d'horloge d'entrée (broche 11 et broche 12) du registre à décalage 74HC595.
La fréquence du signal de sortie (et donc la vitesse du moteur pas à pas) est déterminée par les valeurs des résistances R1 et R2 et la valeur du condensateur C.
Le temps de cycle T sera ln(2) C (R1 + 2 R2) ou environ 0,7 C (R1 + 2 R2). La fréquence est 1/T.
Le rapport cyclique, la fraction du temps de cycle pendant laquelle le signal est élevé, est (R1 + R2) / (R1 + 2R2). Le rapport cyclique n'est pas très important pour ce projet.
J'utilise 10kΩ, pour R1 et R2, et C = 0,1µF.
Cela donne une fréquence d'environ 480 Hz et est proche de la fréquence maximale que j'ai trouvée que le moteur pas à pas peut gérer sans caler.
Pour générer le motif répété décalé de 1100 à partir du 74HC595, la broche 14 (SER) doit être maintenue haute pendant deux cycles d'horloge, puis basse pendant deux cycles d'horloge à plusieurs reprises. C'est-à-dire que la broche doit osciller avec la moitié de la fréquence de l'horloge.
Le compteur d'ondulation binaire double 74HC393
Le 74HC393 compte en binaire, et cela signifie également qu'il peut être utilisé pour diviser les fréquences d'impulsions par des puissances de deux, Sa fiche technique est ici:
Le 74HC393 est double, il a un compteur 4 bits de chaque côté.
Au front descendant de l'impulsion d'horloge, la première broche de sortie s'active et se désactive. Par conséquent, la broche de sortie 1 oscillera avec la moitié de la fréquence de l'horloge d'entrée. Au front descendant de la broche de sortie un, la broche de sortie deux s'active et se désactive. Et ainsi de suite pour les quatre broches de sortie. Chaque fois que la broche n s'éteint, la broche n+1 bascule.
La broche n+1 change deux fois moins souvent que la broche n. C'est le comptage binaire. Le compteur peut compter jusqu'à 15 (tous les quatre bits 1) avant de recommencer à zéro. Si la dernière broche de sortie du compteur 1 est connectée en tant qu'horloge au compteur 2, elle peut compter jusqu'à 255 (8 bits).
Pour créer une impulsion avec la moitié de la fréquence de l'horloge d'entrée, seule la broche de sortie 1 est nécessaire. C'est-à-dire en ne comptant que de zéro à un.
Ainsi, si le comptage est effectué par l'impulsion d'horloge du 555, la broche du compteur 74HC393 qui représente le bit 2, oscillera avec la moitié de la fréquence de l'horloge. Par conséquent, cela peut être connecté à la broche SER du registre à décalage 74HC595, pour générer le modèle souhaité.
Le câblage du compteur binaire 74HC393 doit être:
Broche 1 (1CLK) -> 74HC595 Broche 11, 12 et 555 Broche 3
Pin 2 (1CLR) -> GND Pin 4 (1QB) -> 74HC595 Pin 14 Pin 7 (GND) -> GND Pin 14 (VCC) -> 5V Pin 13 (2CLK) -> GND (non utilisé) Pin 12 (2CLR) -> 5V (non utilisé)
Étape 3: Faites-le fonctionner
Nous pouvons maintenant faire fonctionner le moteur, si les broches 0-3 du 74HC595 sont respectivement connectées aux broches 1-4 de la carte ULN2003.
Pour l'instant, remplacez le condensateur de 0,1 µF sur la broche 6 du temporisateur 555 par un 10 µF. Cela rendra le cycle d'horloge cent fois plus long, et on pourra voir ce qui se passe.
Les LED des cartes ULN2003 peuvent être utilisées pour cela. Débranchez le moteur de la carte ULN2003. Connectez les broches 1 à 4 de la carte à la sortie QA-QD (broches 7, 9, 10 et 11) du 74HC595. Reliez le - et le + de la carte ULN2003 à la masse et au 5V. Si l'alimentation est allumée, vous devriez voir le motif souhaité sur les LED.
Si vous voulez voir ce qui se passe dans le compteur binaire 74HC393, connectez-vous plutôt aux broches 3 à 6 de celui-ci.
Si le schéma semble correct, éteignez, remplacez à nouveau le condensateur par le 0,1 µF, connectez les broches d'entrée 1 à 4 de la carte ULN2003 aux broches de sortie QA - QD du 74HC595 et rebranchez le moteur.
Sous tension, le moteur devrait maintenant fonctionner.
Étape 4: Contrôle de la vitesse
La vitesse du moteur pas à pas est régie par la fréquence de sortie de la minuterie 555. Ceci encore, est régi par les valeurs des résistances R1 et R2 et du condensateur C1 qui lui est connecté. En connectant un potentiomètre de 100kΩ en série avec R2, la fréquence peut être comprise entre 480Hz et 63Hz. Les étapes pr. seconde du moteur, sera la moitié de la fréquence de la minuterie 555.
J'ai utilisé un potentiomètre numérique DS1809-100, conçu pour une utilisation par bouton-poussoir. Les boutons-poussoirs connectant la broche 2 (UC) et la broche 7 (DC) à 5V font augmenter/diminuer la résistance entre les bornes RH (Broche 1) ou RL (Broche 4) et la broche 6 (RW) de l'essuie-glace. Maintenir un bouton pendant plus d'une seconde fait que le bouton se répète automatiquement.
La fiche technique est disponible ici:
Le câblage est comme ceci:
Broche 1 (RH) inutilisée
Broche 2 (UC) -> bouton tactile 1 Broche 3 (STR) -> GND Broche 4 (RL) -> 555 Broche 2 Broche 5 -> GND Broche 6 (RW) -> 10kΩ -> 555 broche 7 Broche 7 (DC) -> bouton tactile 2 Pin 8 -> 5V
Le câblage du bouton tactile 1:
Broche 1/2 -> DS1809 Broche 2
Broche 3/4 -> 5V
Le câblage du bouton tactile 2:
Broche 1/2 -> DS1809 Broche 7
Broche 3/4 -> 5V
Maintenant, la vitesse peut être réglée.
Étape 5: Démarrer / Arrêter
Pour démarrer et arrêter le moteur pas à pas, la broche 4 (la broche de réinitialisation) de la minuterie 555 peut être utilisée. Si cela est tiré vers le bas, il n'y aura pas d'impulsions de sortie de la broche 3.
Un bouton tactile sera utilisé pour basculer entre le démarrage et l'arrêt. Appuyez une fois sur le bouton pour démarrer le moteur, et appuyez à nouveau dessus pour l'arrêter. Pour obtenir ce comportement, une bascule est nécessaire. Mais le 74HC393 qui est déjà là, peut aussi être utilisé. Le 74HC393 a deux parties, et une seule moitié est utilisée comme diviseur de fréquence pour l'impulsion d'horloge.
Étant donné que le compteur binaire n'est en fait qu'un ensemble de bascules à bascule en série, la première bascule de l'autre partie peut être utilisée. En connectant un bouton tactile de telle sorte que la broche 13 (2CLK) soit basse lorsque le bouton est enfoncé, et haute si ce n'est pas le cas, la broche 12 basculera à chaque niveau bas. La connexion de la broche 12 à la broche 4 du 555 démarrera et arrêtera sa sortie, et donc le moteur.
Les boutons tactiles sont un peu délicats, car ils sont mécaniques. Ils peuvent « rebondir », c'est-à-dire qu'ils peuvent envoyer plusieurs signaux à chaque poussée. La connexion d'un condensateur de 0,1 µF sur le bouton permet d'éviter cela.
Donc un bouton tactile (le bouton 3 est ajouté, et la connexion à la broche 4 du 555 est modifiée.
Le câblage du bouton:
Broche 1/2 -> 10kΩ -> 5V
Broche 1/2 -> 0,1 µF -> Broche Broche 3/4 -> 74HC393 Broche 13 (2CLK)
Les modifications suivantes sont apportées au 555:
Broche 4 (Réinitialiser) -> 74HC393 Broche 11 (2QA)
Le bouton 3 devrait maintenant fonctionner comme une bascule marche/arrêt.
Notez qu'un moteur arrêté de cette façon consommera toujours de l'énergie.
Étape 6: Contrôle de la direction
Pour contrôler la direction du moteur, un autre bouton poussoir est nécessaire, puis une autre bascule. Cependant, je vais tricher, en utilisant la bascule suivante du 74HC393, après la bascule marche/arrêt, et le bouton marche/arrêt.
Lorsque la broche de direction (broche 2QA) passe au niveau bas, la broche suivante (broche 2QB) est basculée. Par conséquent, une pression répétée sur le bouton-poussoir entraînera OFF - ON FORWARD - OFF - ON BACKWARD - OFF - ON FORWARD etc.
Pour faire tourner le moteur à l'envers, le schéma envoyé à l'ULN2003 doit être inversé. Cela pourrait être fait avec un registre à décalage bidirectionnel, mais je n'en ai pas. Le 74HC595 n'est pas bidirectionnel.
Cependant, j'ai découvert que je pouvais utiliser mon tampon octal 74HC241. Ce tampon a deux parties de 4 bits, avec des broches OE séparées (activation de la sortie). La première broche OE contrôle les quatre premières broches de sortie et la seconde les quatre dernières broches de sortie. Lorsque l'OE est allumé, les broches de sortie ont la même valeur que les broches d'entrée correspondantes, et lorsqu'elle est éteinte, les broches de sortie seront en état d'impédance élevée, comme si elles n'étaient pas connectées. De plus, l'une des broches OE est active basse et l'autre est active haute, donc lors de leur connexion, seule la moitié du tampon sera active à ce moment-là.
Ainsi, pour une même entrée, une moitié du buffer peut entraîner le moteur vers l'avant, et l'autre moitié vers l'arrière. La moitié active dépend de la valeur des broches OE.
La fiche technique du 74HC241 se trouve sur
Le câblage pourrait être comme ceci:
Broche 1 (1OE) -> 74HC293 Broche 10 (2QB)
Broche 2 (1A1) -> 74HC595 Broche 15 Broche 3 (1Y4) -> ULN2003 Broche 1 Broche 4 (1A2) -> 74HC595 Broche 1 Broche 5 (1Y3) -> ULN2003 Broche 2 Broche 6 (1A3) -> 74HC595 Broche 2 Broche 7 (1Y2) -> ULN2003 Broche 3 Broche 8 (1A4) -> 74HC595 Broche 3 Broche 9 (1Y1) -> ULN2003 Broche 4 Broche 10 (GND) -> Terre Broche 11 (2A1) -> Broche 2 (1A1) Broche 12 (1Y4) -> Broche 9 (2Y1) Broche 13 (2A2) -> Broche 4 (1A2) Broche 14 (1Y3) -> Broche 7 (2Y2) Broche 15 (2A3) -> Broche 6 (1A3) Broche 16 (1Y2) -> Broche 5 (2Y3) Broche 17 (2A3) -> Broche 8 (1A4) Broche 18 (1Y2) -> Broche 3 (2Y4) Broche 19 (2OE) -> Broche 1 (1OE) Broche 20 (VCC) -> 5V
Maintenant, le câblage doit être terminé simplement en mettant sous tension 5V. Assurez-vous que l'alimentation peut fournir suffisamment de courant pour entraîner à la fois le moteur et les circuits.
Étape 7: Conclusions
Le moteur pas à pas peut être commandé sans microcontrôleur.
Les circuits intégrés utilisés ici étaient ceux que j'avais d'avant. La plupart d'entre eux ne sont pas optimaux pour cela, et plusieurs alternatives pourraient être utilisées.
- Pour générer les impulsions, la puce de minuterie 555 est un bon chice, mais plusieurs alternatives existent, par exemple celle décrite dans ce Instructable.
- Pour le contrôle de la vitesse, n'importe quel potentiomètre peut être utilisé, pas seulement numérique. Si vous avez un potentiomètre de 10kΩ, plutôt qu'un 100kΩ, les résistances de 10kΩ peuvent être remplacées par 1KΩ, et le condensateur de 0,1 µF par un condensateur de 1µF (divisez toutes les résistances et multipliez le condensateur avec le même nombre pour garder le timing).
- En utilisant un registre à décalage bidirectionnel, par ex. le 74HC194 faciliterait le contrôle de la direction.
- Pour le contrôle des boutons, le 74HC393 pourrait être remplacé par une bascule, par ex. 74HC73. Le 555 peut également être câblé pour agir comme une bascule.
Conseillé:
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : 6 étapes
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : Dans ce rapide Instructable, nous allons faire un simple contrôleur de moteur pas à pas à l'aide d'un moteur pas à pas. Ce projet ne nécessite aucun circuit complexe ni microcontrôleur. Alors sans plus tarder, commençons
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : 9 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : Dans l'un de mes précédents Instructables, je vous ai montré comment contrôler un moteur pas à pas à l'aide d'un moteur pas à pas sans microcontrôleur. C'était un projet rapide et amusant, mais il est venu avec deux problèmes qui seront résolus dans ce Instructable. Alors, esprit
Locomotive modèle commandée par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Locomotive modèle commandée par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Dans l'un des précédents Instructables, nous avons appris à utiliser un moteur pas à pas comme encodeur rotatif. Dans ce projet, nous allons maintenant utiliser cet encodeur rotatif à moteur pas à pas pour contrôler un modèle de locomotive à l'aide d'un microcontrôleur Arduino. Alors, sans fu
Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Vous avez quelques moteurs pas à pas qui traînent et vous voulez faire quelque chose ? Dans ce Instructable, utilisons un moteur pas à pas comme encodeur rotatif pour contrôler la position d'un autre moteur pas à pas à l'aide d'un microcontrôleur Arduino. Alors sans plus tarder, allons-y
Conduire un moteur pas à pas avec un microprocesseur AVR : 8 étapes
Conduire un moteur pas à pas avec un microprocesseur AVR : Vous avez des moteurs pas à pas récupérés d'imprimantes/lecteurs de disque/etc qui traînent ? Un peu de sondage avec un ohmmètre, suivi d'un simple code de pilote sur votre microprocesseur et vous marcherez avec style