L'innovation sans limites

Votre spécialiste en électronique et robotique.

Contrôler facilement un moteur NEMA17 grâce au driver TB6600 et au joystick KY-023

Sommaire

Piloter un moteur pas-à-pas NEMA17 avec Arduino UNO et le driver TB6600

Apprenez à contrôler un moteur pas-à-pas NEMA17 grâce à une Arduino UNO, un driver TB6600 et un joystick 2 axes KY-023. Ce tutoriel vous guide pas à pas pour réaliser un montage précis et interactif, idéal pour vos projets robotiques et DIY.

Vous découvrirez comment interfacer le moteur avec le driver TB6600, lire les mouvements du joystick et commander le moteur de manière fluide et sécurisée.

Le moteur pas-à-pas NEMA17 : caractéristiques, phases et alimentation

Le moteur pas-à-pas NEMA17 est un moteur bipolaire à 4 fils très utilisé en robotique et dans les systèmes industriels, comme les imprimantes 3D et les machines CNC. Il est composé de deux bobinages (ou phases), chaque phase étant connectée via deux fils.

Pour alimenter correctement le NEMA17, une alimentation externe de 12V de 2A est généralement utilisée.

Moteur pas-à-pas NEMA 17
Moteur pas-à-pas NEMA 17

Identifier les phases du moteur

Avant de débuter le montage et la programmation, il est essentiel d’identifier correctement les phases du moteur. Un driver TB6600 commande les bobinages en alternance : un ordre de branchement précis est donc nécessaire pour assurer le bon fonctionnement.

Branchement des phases

Pour la plupart de nos moteurs NEMA17, les bobinages sont identifiés comme suit :

  • Bobinage/Phase 1 : Fils Rouge et Bleu
  • Bobinage/Phase 2 : Fils Vert et Noir
Bobinages ou phases du moteur pas à pas NEMA 17
Bobinages ou phases du moteur pas à pas NEMA 17

Tester la continuité des phases

Si vous avez un doute sur l’identification des fils, vous pouvez effectuer un test de continuité avec un multimètre. Cette vérification permet de s’assurer que le circuit est fermé et que le courant peut circuler. Un bip du multimètre indique que la phase est correcte.

Pour plus de détails sur le test de continuité, consultez : Guide Fluke.

Le driver TB6600 pour contrôler le moteur NEMA17

Le driver TB6600 permet de piloter un moteur pas-à-pas NEMA17 avec précision.
Il reçoit deux signaux principaux d’une carte de contrôle, généralement STEP et DIR :

  • DIR : détermine le sens de rotation du moteur
  • STEP : chaque impulsion avance le moteur d’un pas ou micro-pas selon le réglage

Le TB6600 module le courant envoyé aux bobinages pour garantir un couple stable et un mouvement fluide, même à basse vitesse.
Des micro-interrupteurs permettent de régler le courant maximal et le niveau de micro-pas pour ajuster précision et fluidité.

Connecteurs du TB6600

  • Connecteurs de commande :
    • ENA : Activation (LOW) / Désactivation (HIGH)
    • DIR : Choix du sens de rotation
    • PUL : Commande des pas (STEP)
  • Connecteurs de puissance :
    • A+/A- : Phase 1 du moteur
    • B+/B- : Phase 2 du moteur
    • VCC : Alimentation positive
    • GND : Masse ou borne négative

Présentation des connecteurs et réglages du TB6600

Le schéma du TB6600 comporte plusieurs éléments numérotés, correspondant à la légende de l’image :

  1. Connecteurs de commande :
    ENA : Activation (LOW) / Désactivation (HIGH) du module TB6600
    DIR : Choix du sens de rotation du moteur
    PUL : Commande du nombre de pas du moteur (STEP)
  2. Connecteurs de puissance :
    A+/A- : Connexion du bobinage ou phase 1 du moteur pas-à-pas
    B+/B- : Connexion du bobinage ou phase 2 du moteur pas-à-pas
    VCC : Borne positive de l’alimentation externe du moteur
    GND : Borne négative ou masse de l’alimentation externe
  3. Tableau récapitulatif du réglage des pas du moteur pas-à-pas
  4. Tableau récapitulatif du réglage du courant maximal délivré par le TB6600 au moteur pas-à-pas
  5. Switches servant à régler le pas de déplacement du moteur (1 à 3) et le courant maximal délivré au moteur pas-à-pas (4 à 6)
Description du TB6600
Description du driver TB600
Switches de réglage du TB6600
Switches de réglage du TB6600

Réglages essentiels du TB6600

Deux éléments doivent être configurés via les switches avec l’aide des tableau récapitulatif sur le driver TB6600 :

  • Résolution du pas : micro-pas pour la précision et la fluidité du mouvement
  • Courant maximal : intensité délivrée au moteur pour éviter surchauffe ou surcharge

Réglage de la résolution du pas

Un moteur NEMA17 standard réalise 200 pas par tour (1,8°/pas). Le driver TB6600 peut subdiviser ces pas en micropas, jusqu’à 6400 micropas par tour.
Dans cet exemple, le driver est configuré à 1600 micropas par tour (1/8) : SW2 ON, SW1 et SW3 OFF, assurant un bon compromis entre vitesse, précision et fluidité.

Réglage de l’intensité maximale

Le moteur NEMA17 utilisé peut supporter jusqu’à 2 A par phase. Le TB6600 est donc réglé à 2 A : SW4 ON, SW5 et SW6 OFF.
Cela permet un fonctionnement sécurisé sans surcharger le driver.

Réglage des switches du driver TB6600
Réglage des switches du driver TB6600

Contrôle du NEMA17 avec le joystick KY-023

Dans cette partie, nous allons réaliser le montage permettant de contrôler la rotation d’un moteur NEMA 17 à l’aide d’un joystick KY-023, d’un driver TB6600 et d’une carte Arduino UNO. L’objectif est de piloter la vitesse et le sens de rotation du moteur en fonction des mouvements du joystick.

Matériel nécessaire

  • 1 × Arduino UNO
  • 1 × Moteur pas-à-pas NEMA 17
  • 1 × Driver TB6600
  • 1 × Joystick KY-023
  • 1 × Câble USB Type-C
  • 1 × Breadboard – 400 points
  • 1 × Connecteur Jack femelle 2.1 × 5.5 mm
  • 1 × Alimentation 12 V – 2 A
  • Câbles de connexion M-M (10 cm)

Schéma de câblage

L’image et le tableau ci-dessous présente les connexions nécessaires entre l’Arduino UNO, le driver TB6600, le NEMA17, le joystick KY-023 et l’alimentation 12 V.

Schéma de montage pour le pilotage NEMA17 avec le TB6600 et le Joystick KY-023
Schéma de montage pour le pilotage NEMA17 avec le TB6600 et le Joystick KY-023
Arduino UnoDriver TB6600Moteur NEMA 17Joystick KY-023Connecteur Jack femelle
5V  +5V 
GND  GND 
A0  VRx 
GNDENA-   
GNDENA+   
GNDDIR-   
D2DIR+   
GNDPUL-   
D3PUL+   
 B-Fil Noir  
 B+Fil Vert  
 A-Fil Bleu  
 A+Fil Rouge  
 GND   Borne Moins (-)
 VCC   Borne Moins (+)

Code Arduino pour le contrôle du NEMA17 avec le joystick KY-023

Le programme suivant permet de piloter un moteur pas-à-pas NEMA 17 à l’aide d’un joystick KY-023 connecté à une carte Arduino UNO et à un driver TB6600. Le joystick contrôle la vitesse et le sens de rotation du moteur selon la position de son axe horizontal.

Principe de fonctionnement

Lorsque le joystick est au centre, le moteur reste à l’arrêt grâce à une zone morte définie par la variable deadZone. En déplaçant le joystick vers la droite ou la gauche, le moteur tourne respectivement dans un sens ou dans l’autre, et la vitesse de rotation augmente proportionnellement à l’amplitude du déplacement.

Code complet Arduino

				
					// Contrôle d'un moteur NEMA 17 avec TB6600 et joystick KY-023
// Carte : Arduino UNO
// Atelier de la Robotique

// Broches moteur
#define DIR_PIN 2
#define STEP_PIN 3

// Broche du joystick
#define JOY_X A0

// Paramètres de contrôle
const int deadZone = 50;   // zone morte autour du centre du joystick
const int minSpeed = 1000; // délai max = vitesse la plus lente
const int maxSpeed = 100;  // délai min = vitesse la plus rapide

void setup() {
  pinMode(DIR_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int xValue = analogRead(JOY_X);
  int speedDelay = minSpeed;

  // Vérifie si le joystick sort de la zone morte
  if (abs(xValue - 512) > deadZone) {
    if (xValue > 512) {
      digitalWrite(DIR_PIN, HIGH); // Rotation dans un sens
      speedDelay = map(xValue, 512 + deadZone, 1023, minSpeed, maxSpeed);
    } else {
      digitalWrite(DIR_PIN, LOW);  // Rotation dans l'autre sens
      speedDelay = map(xValue, 0, 512 - deadZone, maxSpeed, minSpeed);
    }

    // Génération des impulsions STEP
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(speedDelay);
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(speedDelay);

  } else {
    // Moteur à l'arrêt dans la zone morte
    digitalWrite(STEP_PIN, LOW);
  }
}
				
			

Explication du code

  • DIR_PIN : contrôle le sens de rotation du moteur (horaire ou antihoraire).
  • STEP_PIN : envoie des impulsions au driver TB6600 pour chaque pas du moteur.
  • JOY_X : lit la position horizontale du joystick (valeur analogique de 0 à 1023).
  • deadZone : définit la tolérance autour du centre pour éviter les mouvements involontaires.
  • map() : convertit la position du joystick en délai d’impulsion, influençant directement la vitesse.

Ce code offre un contrôle fluide et réactif du moteur pas-à-pas NEMA 17. Il peut être facilement adapté pour d’autres projets utilisant des drivers de type TB6600 ou des manettes analogiques similaires.

Vidéo : fonctionnement du NEMA17 piloté par Arduino UNO, TB6600 et joystick KY-023

Aller plus loin avec le NEMA 17 et le joystick KY-023

Après avoir réalisé le montage et testé le code, vous pouvez maintenant exploiter pleinement votre moteur NEMA 17 avec le joystick KY-023 et le driver TB6600 sur Arduino UNO. Ce système permet de créer des projets robotiques interactifs, des machines CNC simples ou tout mécanisme nécessitant un contrôle précis du moteur pas-à-pas.

Quelques astuces pour aller plus loin :

  • Adapter le code pour contrôler plusieurs moteurs simultanément.
  • Expérimenter différentes résolutions de micropas sur le TB6600 pour optimiser la précision.
  • Combiner le joystick avec des capteurs ou boutons supplémentaires pour créer un contrôle interactif plus complexe.
  • Logger les positions des moteurs dans le code pour analyser les mouvements et ajuster la vitesse.
  • Utiliser une alimentation stable adaptée à la charge réelle des moteurs pour éviter tout saut de pas.

En appliquant ces conseils, vous transformez un simple contrôle manuel en une base solide pour des projets robotiques plus avancés et personnalisés.

Bonjour ! 🌟 Rejoignez notre newsletter pour ne rien manquer.

Recevez nos offres spéciales et les derniers articles directement dans votre boîte de réception

Nous ne faisons pas de spam, promis ! Consultez notre politique de confidentialité pour en savoir plus.

Panier
Retour en haut