Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

S'amuser à apprendre: des explications simples en quelques dizaines de ligne sur les concepts scientifiques et des projets et tutoriels en électronique, domotique, informatique, rétrogaming, etc.

moteur pas à pas 28BYJ-48 avec driver ULN2003

Référence: 28BYJ-48 pour le moteur, ULN2003 pour le driver

Description: un moteur pas à pas est un moteur dont vous pouvez contrôler finement la rotation: vous pouvez choisir dans quel sens il va tourner et le nombre de "pas" dont il va tourner. Il est possible d'indiquer au moteur la vitesse de rotation souhaitée (en nombre de tour par minute) qui permet de demander un nombre de tour par minute.

Le plus souvent, ce moteur est vendu en kit avec une petite carte électronique permettant de l'alimenter et de le contrôler avec un Arduino. Le couple du moteur (sa "force" de rotation, en quelque sorte) est très satisfaisant et m'a permis de créer un portier automatique pour mon poulailler.

Juste pour information, il s'agit d'un moteur pas à pas à 4 phases (4 fils + une masse) fonctionnant en 5V continu, avec des engrenages internes de réduction 1/64, ce qui augmente le couple. Un tour complet nécessite 32 pas pour l'axe, ce qui nous donne, avec une réduction de 1/64, 32 x 64 soit 2048 pas à demander au moteur pour faire un tour complet à l'axe. Le couple de rotation est supérieur à 34.3mN.m (~340g.cm). Heureusement pour nous, nous n'avons pas à nous préoccuper de toutes ces informations complexes car Arduino et le driver ULN2003 gèrent cette complexité à notre place. Vous allez voir que contrôler ce moteur est très facile.

Intégration dans un circuit électronique:

Vous trouverez un code exemple commenté correspondant à ce montage plus bas dans cet article, comme d'habitude.

Il est préférable d'alimenter le moteur par une alimentation 5V DC (5 volts continus) externe afin de ne pas surcharger le Arduino, par exemple grâce à ce type de composant si vous pouvez disposer d'une alimentation 220v à l'endroit où vous faites tourner votre moteur. En revanche, pour vos tests, ça ne posera pas de problème. C'est ce qui est représenté sur le schéma ci-dessus, où le moteur est alimenté par le Arduino.

Il faut d'abord inclure dans votre code la librairie Stepper avec:  #include <Stepper.h>

Vous déclarez ensuite chaque moteur en paramétrant le nombre de pas par tour et les broches sur lesquelles chaque moteur est branché avec la commande Stepper moteur(nbpas, in2, in4, in3, in1); où vous devez remplacer nbpas par un entier désignant le nombre de pas par tour (pour le moteur 28BYJ-48 dont nous parlons ici, nbpas=2048), et remplacer in1, in2, in3 et in4 par le numéro des broches du Arduino sur lesquelles le moteur est branché. Dans notre schéma ci-dessus, in1=6, in2=9, in3=10 et in4=11.

Vous poursuivez en définissant la vitesse attendue de rotation du moteur dans la méthode setup() avec  moteur.setSpeed(tourparminute); où l'entier tourparminute représente le nombre de tour par minute demandé au moteur. Sachez qu'au-delà de 300 tours par minute, le moteur ne tourne plus ("décrochage" du pas à pas). Sachez également que plus le moteur tourne lentement, plus il aura de force pour tourner (couple).

Enfin, vous pouvez demander au moteur de tourner dans un sens avec la commande moteur.step(nbpasavance); nbpasavance représente le nombre de pas à faire dans un sens de rotation. Pour faire tourner l'axe dans l'autre sens, mettez tout simplement un entier négatif: par exemple -2048 pour un tour complet dans l'autre sens.

Comment acheter:

Pour ma part, j'ai acheté un kit "5 moteurs" à 14 euros comprenant 5 moteurs pas à pas et 5 carte ULN2003 sur Amazon.

Pour aller plus loin:

Exemple de code Arduino correspondant au schéma de montage

Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
À propos
Sly

http://science-facile.fr/article-l-auteur-de-ce-blog-52994158.html
Voir le profil de Sly sur le portail Overblog

Commenter cet article