Piloter un moteur pas à pas avec un module L298 – Arduino

Nous allons ici piloter un moteur pas à pas (stepper motor) à l’aide d’un driver L298.

Le moteur utilisé sera le 14HS11-1004S :

Ce moteur est un moteur pas à pas bipolaire. Il possède 2 bobines (du coup, il y a 4 fils).

Les moteurs pas à pas bipolaires nécessitent un double pont en H pour les entraîner; un pont en H pour chaque bobine.

Le document technique du moteur est disponible ici : 14HS11-1004S


Caractéristiques du moteur :

  • Nombre de pas : 200
  • Angle par pas : 1,8°
  • Alimentation : 3,5 – 5V
  • Courant/phase : 1 A
  • Dimensions de l’axe : Ø5 x 23 mm
  • Dimensions : 35 x 35 x 29 mm
  • Poids : 120 g

Lors des essais, il ne faut bien respecter une tension d’alimentation à 5V max. Si une tension trop élevée est envoyé, le moteur et le driver risque de monter en trop haute température.

Câblage :
Attention, il ne faut pas prendre en compte les couleurs en sortie du moteur sur ce schéma, mais la couleur des liens !

Code :

Ce programme permet d’effectuer un tour dans un sens, puis un tour dans l’autre sens :

#include <Stepper.h>

// Définir le nombre de pas par tour
int NbrPas = 200; 


Stepper MonMoteur(NbrPas, 8, 9, 10, 11);

void setup() {
  // Vitesse à 60 tours/min
  MonMoteur.setSpeed(60);
 
  Serial.begin(9600);
}

void loop() {
  // Faire un tour dans un sens
  Serial.println("Sens 1");
  MonMoteur.step(NbrPas);
  delay(500);

  // Faire un tour dans l'autre sens
  Serial.println("Sens 2");
  MonMoteur.step(-NbrPas);
  delay(500);
}

 

Ce programme permet de faire des tours dans le sens positif. Chaque pas sera comptabilisé dans la variable NombreDePas :

#include <Stepper.h>

// Définir le nombre de pas par tour
int NbrPas = 200; 


Stepper MonMoteur(NbrPas, 8, 9, 10, 11);

void setup() {
  // Vitesse à 60 tours/min
  MonMoteur.setSpeed(60);
  Serial.begin(9600);
  int NombreDePas;
}

void loop() 
{
  // Faire un pas tous les 500ms
  MonMoteur.step(1);
  Serial.print("Pas :");
  Serial.println(NombreDePas);
  NombreDePas++;
  delay(500);
}

 

Démarrez une conversation

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.