.. note::
Bonjour et bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder sur Facebook ! Plongez dans l’univers du Raspberry Pi, d'Arduino et de l'ESP32 avec d'autres passionnés.
**Pourquoi nous rejoindre ?**
- **Assistance d'experts** : Résolvez vos problèmes post-achat et défis techniques grâce à l'aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des astuces et tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
- **Réductions spéciales** : Profitez de réductions exclusives sur nos derniers produits.
- **Promotions et concours festifs** : Participez à des concours et promotions durant les fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [|link_sf_facebook|] et rejoignez-nous dès aujourd'hui !
.. _ar_stepper_motor:
2.14 Moteur Pas à Pas
========================
Aperçu
----------
Dans cette leçon, vous découvrirez le fonctionnement du moteur pas à pas.
Composants Requis
---------------------
.. image:: img/list_2.14.png
* :ref:`cpn_mega2560`
* :ref:`cpn_breadboard`
* :ref:`cpn_wires`
* :ref:`cpn_stepper_motor`
* :ref:`cpn_power_module`
Circuit Fritzing
-------------------
Le module d'alimentation est utilisé pour alimenter le moteur pas à pas.
Connectez le GND de la carte Mega 2560 et le GND du module ULN2003 à la
cathode de la breadboard, et reliez le VCC de l'ULN2003 à la sortie 5V du
module d'alimentation.
Le câblage entre le module ULN2003 et la carte Mega2560 est illustré ci-dessous :
.. image:: img/image149.png
Schéma de Connexion
-----------------------
.. image:: img/image462.png
Code
------
.. note::
* Vous pouvez ouvrir directement le fichier ``2.14_stepperMotor.ino`` situé dans le chemin ``sunfounder_vincent_kit_for_arduino\code\2.14_stepperMotor``.
* Ou copiez ce code dans l'IDE Arduino.
.. raw:: html
Une fois le code téléversé sur la carte Mega2560, vous verrez le moteur pas à pas effectuer une rotation complète toutes les secondes, chaque tour prenant 3,75 secondes.
Analyse du Code
-----------------
Grâce à l’utilisation de la bibliothèque Stepper.h, vous pouvez facilement contrôler le moteur pas à pas.
.. code-block:: arduino
#include
**Fonctions de la bibliothèque :**
.. code-block:: arduino
Stepper(steps, pin1, pin2, pin3, pin4)
Crée une nouvelle instance de la classe Stepper représentant un moteur pas à pas spécifique connecté à votre carte Arduino.
* ``steps`` : le nombre de pas pour effectuer une rotation complète du moteur. Si votre moteur indique le nombre de degrés par pas, divisez 360 par ce nombre pour obtenir le nombre de pas (par exemple, 360 / 3,6 donne 100 pas). (int)
.. note::
Chaque rotation complète du moteur pas à pas nécessite 2048 pas.
.. code-block:: arduino
setSpeed(rpm)
Définit la vitesse du moteur en tours par minute. Cette fonction ne fait pas tourner le moteur, mais fixe la vitesse à laquelle il tournera lors de l'appel de step().
* ``rpm`` : la vitesse à laquelle le moteur doit tourner en tours par minute, nombre positif. (long)
.. note::
Le moteur pas à pas que nous utilisons ici peut effectuer jusqu'à 17 rotations par minute.
.. code-block:: arduino
step(steps)
Fait tourner le moteur d'un nombre spécifique de pas, à une vitesse déterminée par le dernier appel à setSpeed().
Cette fonction est bloquante ; c'est-à-dire qu'elle attend que le moteur ait terminé son mouvement avant de passer à la ligne suivante du programme. Par exemple, si la vitesse est fixée à 1 RPM et que step(2048) est appelé pour un moteur de 2048 pas, cette fonction prendra une minute entière pour s'exécuter. Pour un contrôle plus précis, gardez une vitesse élevée et effectuez seulement quelques pas avec chaque appel de step().
* ``steps`` : le nombre de pas pour faire tourner le moteur - positif pour tourner dans un sens, négatif pour tourner dans l'autre. (int)
Illustration du Phénomène
-----------------------------
.. image:: img/image151.jpeg