Panier d’achat

Aucun produit dans le panier.

Moteur Pas à Pas Stepper 5V 28BYJ-48+ Driver ULN2003 Arduino

Le prix initial était : 50.00 د.م..Le prix actuel est : 45.00 د.م..

1 en stock

Quantité Discount (%) Prix
1 - 29 45.00 د.م.
30+ 33.33 % 30.00 د.م.
UGS : MD002 Catégories : , Étiquettes : , , ,

Tutoriel: Comment utiliser Moteur Pas à Pas 5V 28BYJ-48+ Driver ULN2003 pour Arduino


Composants matériels

  1. Moteur pas à pas 28BYJ-48
  2. Carte pilote ULN2003
  3. Arduino Uno Rev 3
  4. Fils de cavalier (mâle à femelle)
  5. Breadboard (en option, facilite le câblage)
  6. Câble USB type A / B
  7. Alimentation 5V (alimenter le moteur pas à pas directement depuis l’Arduino peut l’endommager!)

Informations sur le moteur pas à pas 5V 28BYJ-48 et la carte de commande ULN2003

Le 28BYJ-48 est l’un des moteurs pas à pas les moins chers que vous puissiez trouver . Bien qu’il ne soit pas super précis ou puissant, c’est un excellent moteur à utiliser pour les petits projets ou si vous voulez simplement en savoir plus sur les moteurs pas à pas.

Ce moteur est souvent utilisé pour ajuster automatiquement les aubes d’un climatiseur. Il dispose d’une boîte de vitesses intégrée, ce qui lui confère un couple supplémentaire et réduit considérablement la vitesse.


Vous trouverez ci-dessous les spécifications du moteur pas à pas et du pilote utilisés dans ce didacticiel.

Spécifications du moteur pas à pas 28BYJ-48

Tension nominale 5 V
Résistance de la bobine 50 Ohms
Type de bobine Unipolaire
Diamètre – arbre 0.197″ (5.00 mm)
Longueur – arbre et roulement 0.394″ (10 mm)
Fonctionnalités Arbre aplati
Taille / dimension Rond – 1.100 ″ de diamètre (28.00 mm)
Espacement des trous de montage Arbre aplati
Réduction de vitesse 1/64 ( voir note )
Angle de pas Mode demi-pas (recommandé): 0,0879 °
Mode pas complet: 0,176 °
Pas par révolution Mode demi-pas: 4096 ( voir note )
Mode pas complet: 2048
Style de terminaison Fils conducteurs avec connecteur
Motor type Moteur à engrenages à aimant permanent
Nombre de phases 4
Fiche Technique 28BYJ-48 + ULN2003

Remarque importante : les fabricants spécifient généralement que les moteurs ont une réduction de 64: 1. Certains membres des  forums Arduino ont remarqué que ce n’était pas correct et ont donc démonté certains moteurs pour vérifier le rapport de vitesse réel. Ils ont déterminé que le rapport de démultiplication exact est en fait de  63,68395: 1 , ce qui donne environ  4076  pas par tour complet (en mode demi-pas).

Je ne sais pas si tous les fabricants utilisent exactement la même boîte de vitesses, mais vous pouvez simplement ajuster les pas par tour dans le code, pour correspondre à votre modèle.

Le  moteur pas à pas à petite réduction  utilise le même facteur de forme que le 28BYJ-48, mais a un rapport de démultiplication différent. Il a un ensemble d’engrenages réducteurs d’environ 1/16, ce qui donne 513 pas par tour (en mode pas complet).


Câblage – Connexion du moteur pas à pas 5V 28BYJ-48 et de la carte pilote ULN2003 à Arduino UNO

Le schéma de câblage / schéma ci-dessous vous montre comment connecter la carte pilote ULN2003 au moteur pas à pas 28BYJ-48 et à l’Arduino. Les connexions sont également données dans le tableau ci-dessous.

 

28BYJ-48-Stepper-Motor-ULN2003-Driver-Wiring-Diagram-Schematic-Pinout-Arduino Uno Maroc

J’ai utilisé une planche à pain et des fils de cavalier pour connecter la carte de commande à une alimentation externe.

Connexions ULN2003 et 28BYJ-48 vers Arduino

Carte de pilote ULN2003 Connexion
EN 1 Broche 8 Arduino
EN 2 Broche 9 Arduino
IN3 Broche 10 Arduino
IN4 Broche 11 Arduino
Logic GND Arduino
Alimentation GND
+ Alimentation 5 V

Remarque : il est possible d’alimenter directement le moteur pas à pas à partir de la sortie 5 V de l’Arduino. Ceci n’est cependant pas recommandé. Lorsque le moteur pas à pas consomme trop de courant, vous pouvez  endommager l’Arduino . J’ai également constaté que lorsque j’alimentais l’Arduino avec une alimentation USB uniquement, j’obtiendrais un comportement incohérent et de mauvaises performances du moteur pas à pas.

Je recommande d’alimenter la carte de commande / le moteur pas à pas avec  une alimentation externe 5 V, comme celle-ci . Il doit être livré avec un connecteur DC femelle, vous pouvez donc le connecter facilement à certains fils (cavaliers). Notez que vous devez également connecter le GND de l’Arduino à la broche – sur la carte pilote ULN2003.

Après avoir téléchargé le code,  vous devez également alimenter l’Arduino , soit avec un câble USB de type B, soit via la prise d’alimentation de 5,5 mm.

Le cavalier à côté des connexions d’alimentation sur la carte de commande peut être utilisé pour déconnecter l’alimentation du moteur pas à pas.


Exemple de code Arduino de base pour contrôler un moteur pas à pas 5V 28BYJ-48

Vous pouvez télécharger l’exemple de code suivant sur votre Arduino à l’aide de l’  IDE Arduino .

Cet exemple utilise la  bibliothèque Stepper.h , qui devrait être préinstallée avec l’IDE Arduino. Cette esquisse fait tourner le moteur pas à pas d’un tour dans un sens, s’arrête, puis fait un tour dans l’autre sens.

/ * Exemple d’esquisse pour contrôler un moteur pas à pas 5V 28BYJ-48 avec carte pilote ULN2003 et Arduino UNO. Plus d'information visite notre page Facebook.

// Inclut la bibliothèque Arduino Stepper.h:
#include <Stepper.h>

// Définit le nombre de pas par rotation:
const int stepsPerRevolution = 2048;

// Câblage:
// Broche 8 à IN1 sur le pilote ULN2003
// Broche 9 à IN2 sur le pilote ULN2003
// Broche 10 à IN3 sur le pilote ULN2003
// Broche 11 à IN4 sur le pilote ULN2003

// Créez un objet stepper appelé ‘myStepper’, notez l’ordre des broches:
Stepper myStepper = Stepper ( stepsPerRevolution, 8, 10, 9, 11 ) ;

void setup () {
// Réglez la vitesse sur 5 tr / min:
myStepper. setSpeed ( 5 ) ;

// Commencez la communication série à une vitesse de transmission de 9600:
En série. commencer ( 9600 ) ;
}

boucle void () {
// Étape d’une révolution dans une direction:
En série. println ( “dans le sens des aiguilles d’une montre” ) ;
myStepper. step ( stepsPerRevolution ) ;
retard ( 500 ) ;

// Étape d’une révolution dans l’autre sens:
En série. println ( “sens antihoraire” ) ;
myStepper. step ( -stepsPerRevolution ) ;
retard ( 500 ) ;
}

Code :

L’esquisse commence par inclure la bibliothèque Arduino Stepper.h. Plus d’informations sur cette bibliothèque peuvent être trouvées sur le site Web Arduino. Plus d’information visite notre page Facebook.

// Inclut la bibliothèque Arduino Stepper.h:
#include <Stepper.h>

Ensuite, j’ai défini le nombre de pas nécessaires au moteur pour faire tourner 1 tour. Dans cet exemple, nous utiliserons le moteur en  mode pas à pas . Cela signifie qu’il faut 2048 pas pour tourner à 360 degrés (voir les spécifications du moteur ci-dessus).

// Définit le nombre de pas par rotation:
const int stepsPerRevolution = 2048;

Ensuite, vous devez créer une nouvelle instance de la classe Stepper, qui représente un moteur pas à pas particulier connecté à l’Arduino. Pour cela, nous utilisons la fonction  Stepper(steps, pin1, pin2, pin3, pin4) où étapes est le nombre de pas par tour et pin1 à pin4 sont les broches auxquelles le moteur est connecté. Pour obtenir la séquence d’étapes correcte, nous devons définir les broches dans l’ordre suivant: 8, 10, 9, 11.

// Créez un objet stepper appelé ‘myStepper’, notez l’ordre des broches:
Stepper myStepper = Stepper ( stepsPerRevolution, 8, 10, 9, 11 ) ;

Dans ce cas , j’ai appelé le moteur pas à pas « myStepper » mais vous pouvez utiliser d’ autres noms aussi, comme « z_motor » ou « liftmotor » , etc.  Stepper liftmotor = Stepper(stepsPerRevolution, 8, 10, 9, 11);. Vous pouvez créer plusieurs objets de moteur pas à pas avec des noms et des broches différents. Cela vous permet de contrôler facilement 2 moteurs pas à pas ou plus en même temps.

Dans la configuration, vous pouvez régler la vitesse en tr / min avec la fonction  setSpeed(rpm). La  vitesse maximale  d’un moteur pas à pas 28byj-48 est d’ environ  10 à 15 tours par minute à 5 V .

void  setup ()  {
// Réglez la vitesse sur 5 tr / min:
myStepper. setSpeed ( 5 ) ;
// Commencez la communication série à une vitesse de transmission de 9600:
En série. commencer ( 9600 ) ;
}

Dans la section de code en boucle, nous appelons simplement la  step(steps) fonction qui fait tourner le moteur d’un nombre spécifique de pas à une vitesse déterminée par la  setSpeed(rpm) fonction. Le passage d’un nombre négatif à cette fonction inverse le sens de rotation du moteur.

boucle void ()  {
// Étape d’une révolution dans une direction:
En série. println ( “dans le sens des aiguilles d’une montre” ) ;
myStepper. step ( stepsPerRevolution ) ;
retard ( 500 ) ;

// Étape d’une révolution dans l’autre sens:
En série. println ( “sens antihoraire” ) ;
myStepper. step ( -stepsPerRevolution ) ;
retard ( 500 ) ;
}

Exemples de codes pour moteur pas à pas 5V 28BYJ-48 avec bibliothèque Arduino et AccelStepper

Dans les trois exemples suivants, je vais vous montrer comment contrôler à la fois la vitesse, la direction et le nombre de pas que le moteur pas à pas 5V doit faire. Dans ces exemples, j’utiliserai la  bibliothèque AccelStepper .

La bibliothèque AccelStepper écrite par Mike McCauley est une bibliothèque géniale à utiliser pour votre projet. L’un des avantages est qu’il prend en charge l’accélération et la décélération, mais il a également beaucoup d’autres fonctions intéressantes.

Vous pouvez télécharger la dernière version de cette bibliothèque  ici  ou cliquer sur le bouton ci-dessous.

Vous pouvez installer la bibliothèque en allant dans  Sketch> Inclure la bibliothèque> Ajouter une bibliothèque .ZIP…  dans l’IDE Arduino.

Une autre option consiste à naviguer vers  Outils> Gérer les bibliothèques…  ou tapez Ctrl + Maj + I sous Windows. Le gestionnaire de bibliothèque ouvrira et mettra à jour la liste des bibliothèques installées.

Vous pouvez rechercher «accelstepper» et chercher la bibliothèque de Mike McCauley. Sélectionnez la dernière version, puis cliquez sur Installer.

Installation d'une bibliothèque Arduino étape 2 AccelStepper

Exemple de code de rotation continue

L’esquisse suivante peut être utilisée pour faire fonctionner un ou plusieurs moteurs pas à pas en continu à une vitesse constante. (Aucune accélération ou décélération n’est utilisée).

Vous pouvez copier le code en cliquant sur le bouton dans le coin supérieur droit du champ de code.

/ * Exemple d’esquisse pour contrôler un moteur pas à pas 28BYJ-48 avec carte pilote ULN2003, AccelStepper et Arduino UNO: rotation continue. Plus d'information visite notre page Facebook.

// Inclut la bibliothèque AccelStepper:
#include <AccelStepper.h>

// Définitions des broches du moteur:
#define motorPin1 8 // IN1 sur le pilote ULN2003
#define motorPin2 9 // IN2 sur le pilote ULN2003
#define motorPin3 10 // IN3 sur le pilote ULN2003
#define motorPin4 11 // IN4 sur le pilote ULN2003

// Définit le type d’interface AccelStepper; Moteur 4 fils en mode demi-pas:
#define MotorInterfaceType 8

// Initialisation avec la séquence de broches IN1-IN3-IN2-IN4 pour utiliser la bibliothèque AccelStepper avec le moteur pas à pas 28BYJ-48:
AccelStepper stepper = AccelStepper ( MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4 ) ;

void setup () {
// Définit le nombre maximum de pas par seconde:
stepper. setMaxSpeed ( 1000 ) ;
}

boucle void () {
// Réglez la vitesse du moteur en pas par seconde:
stepper. setSpeed ( 500 ) ;
// Faire avancer le moteur avec une vitesse constante définie par setSpeed ():
stepper. runSpeed () ;
}

Comment fonctionne le code:

Encore une fois, la première étape consiste à inclure la bibliothèque avec  #include <AccelStepper.h>. Plus d’information visite notre page Facebook.

// Inclut la bibliothèque AccelStepper:
#include <AccelStepper.h>

L’étape suivante consiste à définir les connexions ULN2003 à Arduino.

L’instruction  #define est utilisée pour donner un nom à une valeur constante. Le compilateur remplacera toutes les références à cette constante par la valeur définie lors de la compilation du programme. Ainsi, partout où vous parlez  motorPin1, le compilateur le remplacera par la valeur 8 lorsque le programme sera compilé.

// Définitions des broches du moteur:
#define motorPin1 8 // IN1 sur le pilote ULN2003
#define motorPin2 9 // IN2 sur le pilote ULN2003
#define motorPin3 10 // IN3 sur le pilote ULN2003
#define motorPin4 11 // IN4 sur le pilote ULN2003

L’étape suivante consiste à spécifier le type d’interface moteur pour la bibliothèque AccelStepper. Dans ce cas, nous allons piloter un moteur pas à pas à 4 fils en  mode demi-pas , nous définissons donc le type d’interface sur «8». Vous pouvez trouver les autres types d’interface  ici . Si vous souhaitez faire fonctionner le moteur en mode pas-à-pas complet (moins de pas par tour), changez simplement le 8 en 4.

// Définit le type d’interface AccelStepper; Moteur 4 fils en mode demi-pas:
#define MotorInterfaceType 8

Ensuite, vous devez créer une nouvelle instance de la classe AccelStepper avec le type d’interface moteur et les connexions appropriés. Pour obtenir la séquence d’étapes correcte, nous devons définir les broches dans l’ordre suivant:  motorPin1, motorPin3, motorPin2, motorPin4 .

Dans ce cas , j’ai appelé le moteur pas à pas « pas à pas » , mais vous pouvez utiliser d’ autres noms aussi, comme « z_motor » ou « liftmotor » , etc.  AccelStepper liftmotor = AccelStepper(MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4);. Vous pouvez créer plusieurs objets de moteur pas à pas avec des noms et des broches différents. Cela vous permet de contrôler facilement 2 moteurs pas à pas ou plus en même temps.

// Initialisation avec la séquence de broches IN1-IN3-IN2-IN4 pour utiliser la bibliothèque AccelStepper avec le moteur pas à pas 28BYJ-48:
AccelStepper stepper = AccelStepper ( MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4 ) ;

Dans la section setup du code, nous définissons la vitesse maximale en pas / seconde avec la fonction  setMaxSpeed(). Des vitesses de plus de 1000 pas par seconde peuvent ne pas être fiables, je l’ai donc définie comme maximum. Notez que je précise le nom du moteur pas à pas (‘stepper’), pour lequel je souhaite définir la vitesse maximale. Si vous avez plusieurs moteurs pas à pas connectés, vous pouvez spécifier une vitesse différente pour chaque moteur:  stepper2.setMaxSpeed(500);.

void setup () {
// Définit le nombre maximum de pas par seconde:
stepper. setMaxSpeed ( 1000 ) ;
}

Dans la boucle, nous définissons d’abord la vitesse à laquelle nous voulons que le moteur fonctionne avec la fonction  setSpeed(). (vous pouvez également le placer dans la section de configuration du code).

stepper.runSpeed() interroge le moteur et lorsqu’une étape est due, il exécute 1 étape. Cela dépend de la vitesse réglée et du temps écoulé depuis la dernière étape. Si vous voulez changer la direction du moteur, vous pouvez régler une vitesse négative: fait  stepper.setSpeed(-400); tourner le moteur dans l’autre sens.

boucle void () {
// Réglez la vitesse du moteur en pas par seconde:
stepper. setSpeed ( 500 ) ;
// Faire avancer le moteur avec une vitesse constante définie par setSpeed ():
stepper. runSpeed () ;
}

En mode demi-pas, un tour prend 4096 pas, donc 500 pas / s donnent environ  7 tr / min .


Plus d’information visite notre page Facebook.


 

Option:

Moteur pas à pas Stepper, Driver ULN2003, Moteur pas à pas + Driver ULN2003

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “Moteur Pas à Pas Stepper 5V 28BYJ-48+ Driver ULN2003 Arduino”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Tous les résultats de recherche
×