Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Bibliothèque Complète pour Moteur Pas à Pas Bipolaire Arduino

Composants et fournitures

Arduino UNO ×1
Driver Double Pont-H L293D (Texas Instruments) ×1

Applications et services en ligne

Arduino IDE

À propos de ce projet

J'avais précédemment publié une bibliothèque Arduino pour moteurs pas à pas unipolaires, contrôlant vitesse, direction, nombre de tours, angle, etc. Mais elle ne gérait que les moteurs unipolaires. Or, les moteurs pas à pas peuvent aussi être bipolaires. J'ai donc développé cette nouvelle bibliothèque pour contrôler tous les types de moteurs pas à pas bipolaires.

Voici la bibliothèque pour moteur pas à pas bipolaire en Arduino. Elle comporte 9 fonctions pour piloter le moteur selon les besoins, conçue selon les exigences du contrôle de mouvement industriel.

Bibliothèque Complète pour Moteur Pas à Pas Bipolaire Arduino

Caractéristiques principales

  1. Contrôle tout moteur pas à pas bipolaire
  2. Contrôle du sens de rotation
  3. Contrôle précis du nombre de tours (1, 2, 3, 4...)
  4. Contrôle précis de la vitesse en tr/min avec 95 % de précision
  5. Rotation à un angle désiré (0–360°) avec 80–100 % de précision
  6. Compatible avec toutes les cartes Arduino

Description des fonctions de la bibliothèque

  1. bi_polar_Stepper(int pin1, int pin2, int pin3, int pin4) – Crée une instance avec les broches du driver.
  2. set_step_per_rev(int steps) – Définit le nombre de pas par tour (angle de pas / résolution).
  3. set_RPM(int rpm) – Définit la vitesse en tr/min (précision 95 %).
  4. rotate_CW() – Démarre la rotation horaire continue (à appeler en boucle).
  5. rotate_CCW() – Démarre la rotation anti-horaire continue (à appeler en boucle).
  6. rotate(int dir) – Tourne selon la direction (1 = horaire, 0 = anti-horaire).
  7. rotate_one_rev(int dir) – Effectue exactement 1 tour dans la direction choisie.
  8. rotate_n_rev(int dir, int num) – Effectue num tours dans la direction choisie.
  9. rotate_x_deg(int deg) – Tourne à l'angle désiré (0–360°) dans un sens ou l'autre (précision 80–100 %).

Pour utiliser la bibliothèque, copiez le dossier bi_polar_Stepper dans le répertoire des bibliothèques Arduino (ex: C:\arduino-1.6.7\libraries).

Exemples

1) Rotation continue dans un sens à 60 tr/min

#include <bi_polar_Stepper.h>
#define steps 200 // à adapter selon votre moteur
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 60;

void setup() {
  Serial.begin(9600);
  Serial.println("Test bibliothèque moteur bipolaire");
  my_step_motor.set_step_per_rev(steps);
  my_step_motor.set_RPM(rpm);
  Serial.println("Moteur tourne horaire");
}

void loop() {
  my_step_motor.rotate_CW();
}

2) 1 tour horaire puis 1 tour anti-horaire à 30 tr/min en continu

#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;

void setup() {
  Serial.begin(9600);
  Serial.println("Test bibliothèque moteur bipolaire par Ashutosh Bhatt");
  my_step_motor.set_step_per_rev(steps);
  my_step_motor.set_RPM(rpm);
}

void loop() {
  Serial.println("Moteur tourne horaire");
  my_step_motor.rotate_one_rev(1);
  delay(1000);
  Serial.println("Moteur tourne anti-horaire");
  my_step_motor.rotate_one_rev(0);
  delay(1000);
}

3) 2 tours horaire à 100 tr/min puis 2 tours anti-horaire à 50 tr/min

#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;

void setup() {
  Serial.begin(9600);
  Serial.println("Test bibliothèque moteur bipolaire par Ashutosh Bhatt");
  my_step_motor.set_step_per_rev(steps);
}

void loop() {
  my_step_motor.set_RPM(100);
  for(i=0; i<100; i++) my_step_motor.rotate(1);
  delay(2000);
  my_step_motor.set_RPM(50);
  for(i=0; i<100; i++) my_step_motor.rotate(0);
  delay(2000);
}

4) 4 tours horaire à 20 tr/min puis 2 tours anti-horaire à 10 tr/min

#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;

void setup() {
  Serial.begin(9600);
  Serial.println("Test bibliothèque moteur bipolaire par Ashutosh Bhatt");
  my_step_motor.set_step_per_rev(steps);
}

void loop() {
  my_step_motor.set_RPM(20);
  my_step_motor.rotate_n_rev(1, 4);
  delay(2000);
  my_step_motor.set_RPM(10);
  my_step_motor.rotate_n_rev(0, 2);
  delay(2000);
}

5) Rotation 90° horaire puis 90° anti-horaire à 30 tr/min en continu

#include <bi_polar_Stepper.h>
#define motor_steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;

void setup() {
  Serial.begin(9600);
  Serial.println("Test bibliothèque moteur bipolaire");
  my_step_motor.set_step_per_rev(motor_steps);
  my_step_motor.set_RPM(rpm);
  Serial.println("Moteur oscille 90° aller-retour");
}

void loop() {
  my_step_motor.rotate_x_deg(90);
  delay(2000);
  my_step_motor.rotate_x_deg(270); // 270° dans l'autre sens = -90°
  delay(2000);
}

Note : Pour les moteurs de courant/tension plus élevés, remplacez le L293D par un L298 ou 4 transistors Darlington séparés (TIP122, TIP142, etc.).

La bibliothèque et les exemples ont été testés avec :

Code

Bibliothèque Arduino pour Moteur Pas à Pas Bipolaire C/C++

La bibliothèque contrôle RPM, direction, tours, angle de rotation de tous types de moteurs pas à pas bipolaires avec 95 % de précision.

Aperçu non disponible (téléchargement uniquement).

Schémas

Ce circuit pilote et contrôle RPM, direction, angle de rotation, nombre de tours d'un moteur pas à pas bipolaire.

Bibliothèque Complète pour Moteur Pas à Pas Bipolaire Arduino

Processus de fabrication

  1. Moteurs à réluctance variable : types, fonctionnement et applications
  2. Moteurs pas à pas : types, caractéristiques et applications pratiques
  3. Drivers intégrés simplifient la conception de moteurs pas-à-pas haute puissance
  4. Télémétrie de capteur 2.0.1 – Surveillance avancée de température avec Azure IoT Hub
  5. Raspoulette : Prototype de système autonome de porte de poulailler à énergie solaire
  6. Tourelle Nerf Autonome DIY – Construire un Canon Nerf Intelligent avec Moteurs Pas-à-Pas, Caméra et Arduino
  7. Moteurs Servo vs Pas à Pas : Clarifier la zone grise moderne
  8. Comprendre les moteurs linéaires : de l'énergie électrique au mouvement linéaire précis
  9. Servomoteurs expliqués : fonctionnement et importance