ESP8266 - Moteur pas à pas 28BYJ-48 avec driver ULN2003

Ce tutoriel vous explique comment utiliser l'ESP8266 pour contrôler un moteur pas à pas 28BYJ-48 à l'aide d'un driver ULN2003. En détail, nous allons apprendre :

ESP8266 NodeMCU ULN2003 moteur pas à pas 28BYJ-48

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×28BYJ-48 stepper motor + ULN2003 Driver Module
1×5V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du moteur pas à pas 28BYJ-48

Les moteurs pas à pas sont idéaux pour le contrôle de position. Ils décomposent une révolution complète en une série de "pas" égaux. Ces moteurs sont utilisés dans une variété d'appareils, y compris les imprimantes, les imprimantes 3D, les machines CNC et l'automatisation industrielle.

L'une des méthodes économiques pour acquérir des connaissances sur les moteurs pas à pas consiste à utiliser des moteurs pas à pas 28BYJ-48. Ils sont généralement fournis avec une carte pilote basée sur ULN2003, ce qui les rend faciles à utiliser.

Comme indiqué dans la fiche technique, le moteur 28BYJ-48 fonctionne en mode pas entier, chaque pas représentant une rotation de 11,25°. Par conséquent, il y a 32 pas dans une révolution complète (360°/11,25° = 32).

De plus, le moteur dispose d'un réducteur de 1/64. Cela se traduit par 32 x 64 = 2048 pas. Chaque pas est équivalent à 360°/2048 = 0,1758°.

Conclusion : Si le moteur est réglé en mode pas entier, il faudra 2048 pas pour qu'il effectue une révolution complète.

Le moteur pas à pas 28BYJ-48 utilisant le brochage du pilote ULN2003

Le moteur pas à pas 28BYJ-48 dispose de 5 broches. Nous n'avons pas à nous préoccuper des spécificités de ces broches. Tout ce que nous avons à faire est de le brancher sur le connecteur du pilote de moteur ULN2003.

Moteur pas à pas 28BYJ-48

Module pilote de moteur pas à pas ULN2003

Le ULN2003 est un module de pilotage de moteur largement utilisé pour les moteurs pas à pas.

  • Il possède quatre LED qui affichent l'activité de quatre lignes d'entrée de contrôle, ce qui produit un effet impressionnant lorsque le moteur est en mouvement.
  • De plus, il comprend un cavalier marche/arrêt pour séparer l'alimentation du moteur pas à pas.

Brochage ULN2003

Brochage du pilote de moteur pas à pas ULN2003

Le module ULN2003 possède 6 broches et un connecteur femelle :

  • IN1 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
  • IN2 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
  • IN3 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
  • IN4 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
  • GND : Il s'agit d'une broche de terre commune et doit être connectée aux GNDs à la fois de l'ESP8266 et de l'alimentation externe.
  • VDD : Cette broche fournit l'alimentation pour le moteur et doit être connectée à l'alimentation externe.
  • Connecteur moteur : C'est ici que le moteur est branché.

※ NOTE THAT:

  • La tension de l'alimentation externe doit correspondre à la tension du moteur pas à pas. Par exemple, si un moteur pas à pas fonctionne sous 12V DC, une alimentation de 12V doit être utilisée. Dans le cas d'un moteur pas à pas 28BYJ-48, qui fonctionne avec 5V DC, une alimentation de 5V doit être utilisée.
  • Cependant, même si le moteur pas à pas nécessite une alimentation de 5V, la broche VDD ne doit PAS être connectée à la broche 5V sur l'ESP8266. Au lieu de cela, elle doit être connectée à une alimentation externe de 5V, car le moteur pas à pas consomme trop de puissance.

Diagramme de câblage

Schéma de câblage du pilote de moteur pas à pas ULN2003 ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Il n'est pas nécessaire de prendre en compte la couleur des fils du moteur pas à pas. Nous devons simplement brancher le connecteur mâle du moteur pas à pas 28BYJ-48 dans le connecteur femelle du pilote ULN2003.

Comment programmer pour contrôler un moteur pas à pas

Il existe trois manières de contrôler un moteur pas à pas :

  • Pas complet
  • Demi-pas
  • Micro-pas

Pour les applications de base, nous pouvons utiliser la méthode pas entier. Les spécificités des trois méthodes seront discutées dans la dernière partie de ce tutoriel. Programmer ces méthodes peut être complexe. Heureusement, de nombreuses bibliothèques ont déjà fait le travail pour nous, donc tout ce que nous avons à faire est d'utiliser la bibliothèque.

L'IDE Arduino inclut une bibliothèque Stepper. Cependant, nous ne recommandons pas d'utiliser cette bibliothèque pour les raisons suivantes :

  • La bibliothèque est bloquante, ce qui signifie qu'elle empêche l'ESP8266 d'effectuer d'autres tâches pendant la commande du moteur pas à pas.
  • Elle n'offre pas suffisamment de fonctions.

Au lieu de cela, nous vous suggérons d'utiliser la bibliothèque AccelStepper. Cette bibliothèque fournit :

  • Accélération
  • Décélération
  • Pilotage en pas entier et demi-pas
  • La capacité de contrôler plusieurs moteurs pas à pas indépendamment
  • Inconvénient : Ne prend pas en charge le pilotage par micro-pas.

Code ESP8266

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-28byj-48-stepper-motor-uln2003-driver */ // Include the AccelStepper Library #include <AccelStepper.h> // define step constant #define FULLSTEP 4 #define STEP_PER_REVOLUTION 2048 // this value is from datasheet // The ESP8266 pins entered in sequence IN1-IN3-IN2-IN4 for proper step sequence AccelStepper stepper(FULLSTEP, D1, D5, D2, D6); void setup() { Serial.begin(9600); stepper.setMaxSpeed(1000.0); // set the maximum speed stepper.setAcceleration(50.0); // set acceleration stepper.setSpeed(200); // set initial speed stepper.setCurrentPosition(0); // set position stepper.moveTo(STEP_PER_REVOLUTION); // set target position: 64 steps <=> one revolution } void loop() { // change direction once the motor reaches target position if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); // MUST be called in loop() function Serial.print(F("Current Position: ")); Serial.println(stepper.currentPosition()); }

Étapes rapides

Pour commencer avec l'ESP8266 sur l'Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme par exemple NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.
  • Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  • Recherchez “AccelStepper” et trouvez la bibliothèque AccelStepper créée par Mike McCauley.
  • Ensuite, appuyez sur le bouton Install pour installer la bibliothèque AccelStepper.
Bibliothèque AccelStepper pour ESP8266 NodeMCU
  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload pour charger le code sur l'ESP8266.
  • Observez la rotation du moteur.
  • Il devrait effectuer une révolution dans le sens horaire, suivie de deux révolutions dans le sens antihoraire, puis de deux révolutions dans le sens horaire.

La procédure est effectuée en continu.

  • Surveillez le résultat dans le moniteur série.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Connaissances supplémentaires

Le moteur pas à pas vibre lors du mouvement

Ne vous inquiétez pas si le moteur pas à pas tremble pendant son fonctionnement. C'est une caractéristique typique du moteur pas à pas. Nous pouvons réduire les vibrations en utilisant la technique de contrôle par micro-pas.

De plus, en raison de cette caractéristique, si elle est gérée correctement, le moteur pas à pas peut générer des tons musicaux comme s'il s'agissait d'un instrument de musique. Un exemple de cela peut être trouvé ici sur Hackster.io.

2. Méthode de contrôle des moteurs pas à pas

  • Pas complet : L'unité de mouvement est un pas, qui est égal à la valeur du degré spécifié dans la fiche technique ou le manuel du moteur pas à pas.
  • Demi-pas : Chaque pas complet est divisé en deux petits pas. L'unité de mouvement est la moitié du pas complet. Cette méthode permet au moteur de se déplacer avec une résolution double.
  • Micro-pas : Chaque pas complet est divisé en de nombreux petits pas. L'unité de mouvement est une fraction du pas complet. La fraction peut être 1/4, 1/8, 1/16, 1/32 ou même plus. Cette méthode permet au moteur de se déplacer avec une résolution plus élevée. Elle permet également au moteur de se déplacer plus doucement à faible vitesse. Plus le dividende est grand, plus la résolution est élevée et plus le mouvement sera doux.

Si la fiche technique du moteur spécifie 1,8 degré/étape :

  • Pas complet : Le moteur peut avancer par incréments de 1,8 degrés par pas, ce qui donne 200 pas par révolution.
  • Demi-pas : Le moteur peut avancer par incréments de 0,9 degrés par pas, ce qui donne 400 pas par révolution.
  • Micro-pas : Le moteur peut avancer par incréments de 0,45, 0,225, 1,125, 0,05625 degrés par pas, ce qui donne 800, 1600, 3200, 6400... pas par révolution.

Le code ci-dessus utilisait la technique de contrôle par pas complet.

3. Problème de résonance

Ceci est destiné aux utilisateurs avancés. Les débutants n'ont pas besoin de le noter. Cela se produit à une gamme de vitesses, où la fréquence de pas est égale à la fréquence naturelle du moteur. Il pourrait y avoir un changement notable dans le bruit produit par le moteur, ainsi qu'une augmentation des vibrations. Dans les applications réelles, les développeurs doivent être conscients de cela.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!