ULN2003 Motor Driver Board G23

$3.5

La carte de commande de moteur pas à pas ULN2003 permet d’utiliser les matrices ULN2003 DARLINGTON pour piloter le moteur pas à pas 4 phases 5 fils (5 V-12 V). Il est facile d’utiliser Arduino ou une autre plate-forme de développement pour piloter le moteur pas à pas à l’aide de cette carte de commande.

In stock

SKU: ROB3226 Categories: ,

Description

La carte de commande de moteur pas à pas ULN2003 permet d’utiliser les matrices ULN2003 DARLINGTON pour piloter le moteur pas à pas 4 phases 5 fils (5 V-12 V). Il est facile d’utiliser Arduino ou une autre plate-forme de développement pour piloter le moteur pas à pas à l’aide de cette carte de commande.

Prise en main de la carte de commande de moteur ULN2003

Dans ce tutoriel, nous découvrirons le moteur pas à pas  28-BYJ48  le plus couramment/le moins cher disponible et comment l’interfacer avec  Arduino  à l’aide  de la carte de pilote de moteur ULN2003.

Moteurs pas à pas :

Jetons un œil à ce  moteur pas à pas 28-BYJ48 .

D’accord, contrairement à un moteur à courant continu normal, celui-ci a cinq fils de toutes les couleurs fantaisie qui en sortent et pourquoi en est-il ainsi ? Pour comprendre cela, nous devons d’abord savoir comment fonctionne un moteur pas à pas et quelle est sa spécialité. Tout d’abord,  les moteurs pas à pas ne tournent pas , ils avancent et sont donc également connus sous le nom  de moteurs pas à pas . Cela signifie qu’ils ne se déplacent que d’un pas à la fois. Ces moteurs ont une séquence de bobines présentes en eux et ces bobines doivent être alimentées d’une manière particulière pour faire tourner le moteur. Lorsque chaque bobine est alimentée, le moteur fait un pas et une séquence d’alimentation fera en sorte que le moteur fasse des pas continus, le faisant ainsi tourner. Jetons un œil aux bobines présentes à l’intérieur du moteur pour savoir exactement d’où viennent ces fils.

Comme vous pouvez le voir, le moteur est doté d’une bobine à 5 fils unipolaire. Il y a quatre bobines qui doivent être alimentées dans une séquence particulière. Les fils rouges seront alimentés en +5 V et les quatre fils restants seront tirés vers la terre pour déclencher la bobine correspondante. Nous utilisons un microcontrôleur comme Arduino pour alimenter ces bobines dans une séquence particulière et faire en sorte que le moteur effectue le nombre d’étapes requis.

Regardons quelques-unes des données techniques importantes obtenues à partir de la fiche technique de ce moteur dans l’image ci-dessous.

C’est une tête pleine d’informations, mais nous devons examiner quelques informations importantes pour savoir quel type de moteur pas à pas nous utilisons afin de pouvoir le programmer efficacement. Tout d’abord, nous savons qu’il s’agit d’un moteur pas à pas de 5 V puisque nous alimentons le fil rouge avec 5 V. Ensuite, nous savons également qu’il s’agit d’un moteur pas à pas à quatre phases puisqu’il contient quatre bobines. Maintenant, le rapport de démultiplication est donné comme étant de 1:64. Cela signifie que l’arbre que vous voyez à l’extérieur ne fera qu’une rotation complète si le moteur à l’intérieur tourne 64 fois. Cela est dû aux engrenages qui sont connectés entre le moteur et l’arbre de sortie, ces engrenages aident à augmenter le couple.

Une autre donnée importante à noter est l’  angle de foulée : 5,625°/64.  Cela signifie que le moteur, lorsqu’il fonctionne en séquence de 8 étapes, se déplacera de 5,625 degrés à chaque étape et qu’il faudra 64 étapes (5,625*64=360) pour effectuer une rotation complète.

Calcul des pas par tour pour un moteur pas à pas :

Il est important de savoir comment calculer les pas par tour pour votre moteur pas à pas, car c’est seulement alors que vous pourrez le programmer efficacement.

Dans Arduino, nous allons faire fonctionner le moteur en séquence de 4 étapes, donc l’angle de foulée sera de 11,25° puisqu’il est de 5,625° (indiqué dans la fiche technique) pour une séquence de 8 étapes, il sera de 11,25° (5,625*2=11,25).

     Pas par tour = 360/angle de pas

Ici, 360/11,25 =  32 pas par tour.

Pièces requises

Connexion du matériel

Le schéma de circuit pour le  projet de contrôle du moteur pas à pas Arduino  est présenté ci-dessus. Nous avons utilisé le moteur pas à pas 28BYJ-48 et le module de commande ULN2003. Pour alimenter les quatre bobines du moteur pas à pas, nous utilisons les broches numériques 8, 9, 10 et 11. Le module de commande est alimenté par la broche 5 V de la carte Arduino.

Mais alimentez le pilote avec une alimentation externe lorsque vous connectez une charge au moteur pas à pas. Comme j’utilise le moteur uniquement à des fins de démonstration, j’ai utilisé le rail +5 V de la carte Arduino. N’oubliez pas non plus de connecter la masse de l’Arduino à la masse du module Diver.

Code pour la carte Arduino :

Avant de commencer à programmer avec notre Arduino, essayons de comprendre ce qui doit réellement se passer dans le programme. Comme indiqué précédemment, nous utiliserons la méthode de séquence en 4 étapes, nous aurons donc quatre étapes à effectuer pour effectuer une rotation complète.

Étape

Épingle énergisée

Bobines sous tension

Étape 1

8 et 9

A et B

Étape 2

9 et 10

B et C

Étape 3

10 et 11

C et D

Étape 4

11 et 8

D et A

 

Le module pilote disposera de quatre LED à l’aide desquelles nous pourrons vérifier quelle bobine est sous tension à un moment donné.

Dans ce tutoriel, nous allons écrire le  code du moteur pas à pas Arduino  et pour cela nous allons  programmer l’Arduino  de manière à pouvoir saisir le nombre de pas que le moteur pas à pas doit effectuer via le moniteur série de l’Arduino. Le programme complet se trouve à la fin du tutoriel, quelques lignes importantes sont expliquées ci-dessous.

Le nombre de pas par tour pour notre moteur pas à pas a été calculé à 32 ; nous l’inscrivons donc comme indiqué dans la ligne ci-dessous

#define ÉTAPES 32

Ensuite, vous devez créer des instances dans lesquelles nous spécifions les broches auxquelles nous avons connecté le moteur pas à pas.

Moteur pas à pas (STEPS, 8, 10, 9, 11) ;

Remarque :  les numéros de broches sont volontairement classés comme 8, 10, 9, 11. Vous devez suivre le même schéma même si vous changez les broches auxquelles votre moteur est connecté.

Comme nous utilisons la bibliothèque Arduino stepper, nous pouvons régler la vitesse du moteur à l’aide de la ligne ci-dessous. La vitesse peut être comprise entre 0 et 200 pour les moteurs pas à pas 28-BYJ48.

moteur pas à pas.setSpeed(200);

Maintenant, pour faire avancer le moteur d’un pas, nous pouvons utiliser la ligne suivante.

moteur pas à pas.pas(val);

Le nombre de pas à déplacer sera fourni par la variable « val ». Comme nous avons 32 pas et 64 comme rapport de démultiplication, nous devons déplacer 2048 (32*64=2048) pour effectuer une rotation complète.

La valeur de la variable « val » peut être saisie par l’utilisateur à l’aide du moniteur série.

Fonctionnement du moteur pas à pas avec Arduino :

Une fois la connexion établie, le matériel devrait ressembler à ceci dans l’image ci-dessous.

 

        

Maintenant, chargez le programme ci-dessous dans votre Arduino UNO et ouvrez le moniteur série. Comme indiqué précédemment, nous devrons effectuer 2048 pas pour effectuer une rotation complète, donc lorsque nous entrons 2048, le moteur effectuera une rotation complète dans le sens des aiguilles d’une montre en effectuant 2048 pas. Pour faire une rotation dans le sens inverse des aiguilles d’une montre, entrez simplement le nombre avec le signe négatif « – ». Ainsi, en entrant -1024, le moteur tournera à moitié dans le sens inverse des aiguilles d’une montre. Vous pouvez entrer toutes les valeurs souhaitées, par exemple, en entrant 1, le moteur ne fera qu’un seul pas.

Code

// Code de contrôle du moteur pas à pas Arduino

#include <Stepper.h> // Inclure le fichier d’en-tête

// remplacez ceci par le nombre d’étapes de votre moteur
#define STEPS 32

// créer une instance de la classe stepper en utilisant les étapes et les broches
Stepper stepper(STEPS, 8, 10, 9, 11);

int val = 0;

void setup() {
Serial.begin(9600);
stepper.setSpeed(200);
}

boucle vide() {

si (Serial.available()>0)
{
val = Serial.parseInt();
stepper.step(val);
Serial.println(val); //pour le débogage
}

}