Pour le fun, tout simplement ūüėČ

Module ULN2003

Présentation

On trouve chez plusieurs marchands du net ce petit kit permettant de piloter un¬†moteur pas-√†-pas. Le mien provient de chez un c√©l√®bre vendeur Chinois, kit obtenu pour moins de 2‚ā¨ livr√© en France ‚ėļ.

Le kit comprend le matériel suivant :

  • Une platine pilote ULN2003 de 35mm x 32mm x 10mm de haut.
  • Un moteur pas-√†-pas 28BYJ-48,¬†5 Volts DC avec ses fils de raccordement (24cm).

La carte pilote, le moteur et un clone Arduino

Il faudra bien entendu une carte Arduino pour faire fonctionner le moteur pas-à-pas et son pilote. Peu importe ici, le type de carte Arduino utilisée.

Par ailleurs il est pr√©f√©rable d’utiliser une alimentation externe 5 V continu si on veut garder son Arduino en bonne sant√©… En effet¬†d√®s que l’on demande un peu de puissance en sortie, il est pr√©f√©rable de ne pas utiliser le 5 V de l’Arduino ou du port USB du PC.

Description

Carte pilote

La carte pilote utilise un circuit ULN2003 qui regroupe 7 transistors “Darlington” pouvant d√©livrer jusqu’a 500 mA. Voir le sch√©ma ci-dessous pour la structure d’un transistor “Darlington”.

 

La tension d’alimentation max est de 12 V. Mais ici on se limitera √† 5 V qui est la tension de service du moteur pas-√†-pas livr√©.

La carte comporte 3 connecteurs :

  • Alimentation, 4 broches :
  1. Masse du montage.
  2. +5 V alimentant le circuit ULN2003.
  3. Reliée à la broche 2.
  4. +5 V alimentant les leds et le moteur.
  • Entr√©es, 4 broches reliant la carte pilote aux GPIO de la carte Arduino.
  • Moteur, 5 broches. Ce connecteur est d√©tromp√© et on ne peut donc inverser le branchement du moteur.

4 leds sont pr√©sentes sur la carte pilote et permettent de visualiser et donc contr√īler¬†le bon fonctionnement des 4 phases (A, B, C, D), du moteur pas-√†-pas.

Ses dimensions sont très réduites : 35mm x 32mm pour 10mm de hauteur.

Moteur pas-à-pas

Le moteur pas-à-pas est un modèle 25BYJ-48.

  • Moteur unipolaire √† branchement 5 fils.
  • Tension d’alimentation 5 V continu.
  • R√©sistance interne 50 ‚Ą¶.
  • Intensit√© nominale : 25 mA.
  • Fr√©quence : 100 Hz.
  • Couple de rotation¬†34 mN.m.
  • 64 pas par tour.
  • R√©solution de 5,625¬į (360¬į / 64).
  • Niveau sonore 40 dB.
  • Entraxe de fixation: 35mm.
  • Axe : √ė 5mm avec double m√©plat (√©paisseur 3mm).
  • Longueur de l’axe: 8mm
Connecteur de raccordement :
  • Commun : Rouge (P√īle positif de l’alimentation).
  • Broche 1 : Orange (Led D).
  • Broche 2 : Jaune (Led C).
  • Broche 3 : Rose (Led B).
  • Broche 4 : Bleu (Led A).

Carte Arduino

La carte Arduino sera c√Ębl√©e de la mani√®re suivante¬†:

  • Broche 8 de l’Arduino reli√© √† la broche 1 de la carte pilote ULN2003.¬†
  • Broche 9 de l’Arduino reli√© √† la broche 2 de la carte pilote ULN2003.
  • Broche 10 de l’Arduino reli√© √† la broche 3 de la carte pilote ULN2003.
  • Broche¬†11¬†de l’Arduino reli√© √† la broche 4¬†de la carte pilote ULN2003.

Bien sur on pourra utiliser d’autres broches (Digitales) des GPIO de l’Arduino¬†mais dans ce cas, attention √† modifier cela dans le code source…

Alimentation 5 V

N’importe quelle alimentation 5 V courant continu 500 mA fera l’affaire.

Principe de fonctionnement

Le moteur pas-à-pas à 4 phases démultiplié dans un rapport de 1:64 (Réduction mécanique), permet de se positionner sur la valeur angulaire de son choix et ce manière trés précise. 

Le couple relativement important permet¬†une utilisation dans divers montages de petite taille. La carte pilote √† base d’ULN2003¬†sert d’interface de puissance ce que les GPIO de l’Arduino ne peuvent pas fournir sans risque.

Ce montage pourra être utilisé dans les exemples suivants :

  • Table x, Y de petite taille.
  • Toute sortes d’automatismes.

Séquence de commutation

Couleur des fils Direction
1 2 3 4 5 6 7 8
Bleu (Fil N¬į 1) ¬† ¬† ¬† ¬† ¬† ‚úď ‚úď ‚úď
Rose (Fil N¬į 2) ¬† ¬† ¬† ‚úď ‚úď ‚úď ¬† ¬†
jaune (Fil N¬į 3) ¬† ‚úď ‚úď ‚úď ¬† ¬† ¬† ¬†
Orange (Fil N¬į 4) ‚úď ‚úď ¬† ¬† ¬† ¬† ¬† ‚úď

Les schémas de raccordement

Schéma de la carte pilote à ULN2003
 

¬†C√Ęblage de l’ensemble

 

Le code source Arduino

// Inclusion de la librairie "stepper.h" pour les moteurs pas-à-pas. 
#include // Déclaration de la constante définissant le nombre de pas. 
#define PAS 100 // Création d'une instance de la classe stepper. 

// On utilise les sorties digitales 8, 9, 10 et 11 // de l'Arduino pour connecter les fils 1, 2, 3 et 4 de la carte pilote. 
// De cette manière, on tourne dans le sens "horaire". 
// Pour changer de sens on inverse les sorties 8 et 11. 
Stepper small_stepper(PAS, 8, 10, 9, 11); 
int nbPas = 0; // Initialisation du nombre de pas demandé long temps = 0; 

// Initialisation de la durée d'un tour. Pour ce moteur : 64 pas par tour. 
// 4 phases donc un angle de 5.625¬į (360¬į / 64). 
// Démultiplication de 1:64 (Réducteur mécanique intégré). 
// 64 * 64 = 4096 angles en prenant en compte la réduction mécanique. 
// 360¬į / 5.625¬į * 64 * 4 bobines / 2 bipolaire = 2048 step / tour. 

void setup() { Serial.begin(9600); // Transmission à 9600 bps 
   Serial.println("Moteur pas à pas"); 
} 

void loop() { 
   Serial.println("Moteur en cours de fonctionnement"); 
   // Faire tourner le moteur en ne dépassant pas 300. 
   // Avec 100 le couple est élevé. 
   // Au dessus de 300, le moteur vibre et ne tourne plus... 
   // Plus le chiffre est bas, plus le moteur tourne lentement. 

   small_stepper.setSpeed(10); 
   // Une rotation complète avec 1024 pas (1 tour environ 9 secondes) nbPas = 2048; 
   // Pour tourner dans le sens inverse de 10 fois 1/20ème de tour, 
   // il faut multiplier "nbPas" par 10/20ème et ajouter le 
   // signe "moins" devant pour inverser le sens. 
   // Cela donne : 

   nbPas = -10*2048/20; temps = millis(); // Ca tourne. small_stepper.step(nbPas);
   // Chronomètrage d'un tour complet 6.236 s à vitesse 200. 

   temps = millis() - temps ; // Affiche le temps (en ms) pour un tour complet. 
   Serial.println(temps); // On effectue une pause de 5 secondes (5000 ms). 
   delay(5000); 
}

 

Références techniques

  1. Datasheet du moteur 28BYJ-48 5 V.
  2. Datasheet du ciruit ULN2003.
  3. Pour aller plus loin avec les moteurs pas-à-pas.

Add Your Comment

* Indicates Required Field

Your email address will not be published.

*

17 + dix-sept =