Moteur pas à pas: intégration avec Arduino

Moteur pas à pas

Les moteurs électriques sont de plus en plus demandés, parmi eux peut-être ceux qui fonctionnent avec du courant continu, les plus populaires dans les projets des fabricants avec Arduino, car ils fournissent la mobilité. Parmi eux, mettez en évidence moteurs pas à pas qui sont utilisés pour de multiples applications, en particulier pour la robotique, comme les actionneurs, etc.

Voitures électriques, petits robots autonomes, applications industrielles pour l'automatisation, dispositifs à mouvements répétitifs, etc. La raison pour laquelle les servomoteurs et les moteurs pas à pas sont si bons pour ces applications est qu'ils peuvent effectuer des mouvements lents ou rapides, mais surtout contrôlés. De plus, les entraînements sont continus pour les applications où de nombreux arrêts et démarrages sont nécessaires avec une grande précision.

Types de moteurs électriques

Dans moteurs électriques les types suivants peuvent être mis en évidence:

  • Moteur DC ou DC: Les moteurs à courant continu fonctionnent avec ce type de courant, comme son nom l'indique. Ils peuvent aller de quelques mW de puissance à quelques MW dans les plus puissants et les plus gros, qui sont utilisés pour des applications industrielles, véhicules, ascenseurs, convoyeurs, ventilateurs, etc. Sa vitesse de rotation (RPM) et le couple appliqué peuvent être réglés en fonction de l'avance.
  • Moteur à courant alternatif ou à courant alternatif (rotor asynchrone et bobiné): ils fonctionnent en courant alternatif, avec un rotor très spécifique qui fonctionne grâce aux phases que ce type de courant contribue à générer la rotation au moyen de la répulsion magnétique de l'électroaimant de la même manière que les DC. Ils sont très bon marché et vont jusqu'à plusieurs kW. Ils peuvent être régulés en vitesse de rotation, mais les éléments de régulation sont plus chers que ceux de DC. Ceux-ci sont souvent utilisés pour les appareils ménagers.
  • Moteur pas à pas- Aussi connus sous le nom de steppers, ils sont similaires à bien des égards au DC, mais avec des vitesses et des puissances de rotation faibles. Ici, ce qui ressort est le positionnement de l'axe, c'est-à-dire la précision pour les mettre dans une position précise. Leur angle de rotation et leur vitesse peuvent être beaucoup contrôlés, c'est pourquoi ils étaient utilisés dans les lecteurs de disquettes, les disques durs (HDD), les robots, l'automatisation de processus, etc.
  • Servomoteur: on peut dire que c'est une évolution du moteur pas à pas, fonctionnant avec de petites puissances et des vitesses allant jusqu'à 7000 tr / min dans certains cas. Ce moteur intègre un réducteur et un circuit de commande. Ils ont la même précision de positionnement que les steppers et sont très stables en termes de couple appliqué, ce qui les rend idéaux pour certains robots et applications industrielles.

Moteurs pas à pas et servomoteurs

rotor et stator

Vous savez déjà ce que sont ces deux types de moteurs électroniques, mais j'aimerais dire quelque chose en savoir plus sur les steppers. Le tour qu'ils font ne se fait pas en continu, mais par petites étapes, d'où leur nom. Le rotor (partie qui tourne) a la forme d'une roue dentée, tandis que le stator (partie qui ne tourne pas) est constitué d'électroaimants polarisés entrelacés. De cette manière, quand on est "activé" ceux de ses côtés ne sont pas activés, ce qui attire la dent du rotor vers lui, permettant l'avancée précise pour laquelle ils sont caractérisés.

drv8825
Article connexe:
DRV8825: le pilote des moteurs pas à pas

En fonction de la dents de rotor, il sera possible d'avancer plus ou moins dans le virage. Si vous avez plus de dents, plus d'étapes sont nécessaires pour effectuer un virage, mais les étapes seront plus courtes, ce sera donc un moteur plus précis. Si vous avez peu de dents, les pas seront des sauts plus brusques, sans autant de précision. Par conséquent, les étapes qu'un moteur pas à pas devra suivre pour effectuer un virage dépendront des pas angulaires.

Ces étapes angulaires sont normalisés, bien que vous puissiez trouver certains moteurs dont le pas n'est pas standard. Les angles sont généralement: 1.8 °, 5.625 °, 7.5 °, 11.25 °, 18 °, 45 ° et 90 °. Pour calculer le nombre de pas nécessaires à un moteur pas à pas pour effectuer un tour ou un tour complet (360 °), il vous suffit de diviser. Par exemple, si vous avez un moteur pas à pas de 45 °, vous auriez 8 pas (360/45 = 8).

rotation avec biais (phase)

Dans ces moteurs, vous avez le unipolaire (le plus populaire), avec 5 ou 6 câbles, ou le bipolaire, avec 4 câbles. Selon cela, l'un ou l'autre sera réalisé séquences de polarisation passage du courant à travers ses bobines:

  • Polarisation pour bipolaire:
Étape Terminal A Terminal B Borne C Borne D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • Pour unipolaire:
Étape Bobine A Bobine B Bobine C Bobine D
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

Le fonctionnement dans les deux cas est le même, polarisant les bobines pour attirer le rotor là où vous voulez que l'axe soit positionné. Si tu veux gardez-le dans une position, vous devez maintenir la polarisation pour cette position et voila. Et si vous voulez qu'il avance, vous polarisez l'aimant suivant et il fera un autre pas, et ainsi de suite ...

Si vous utilisez un servomoteur, vous savez déjà qu'il s'agit essentiellement d'un moteur pas à pas, donc tout ce qui est dit fonctionne aussi pour eux. La seule chose qui inclut ces réducteurs pour obtenir beaucoup plus de pas par tour et donc avoir une précision beaucoup plus élevée. Par exemple, vous pouvez trouver un moteur avec 8 pas par tour que s'il avait une boîte de vitesses 1:64, car cela signifie que chaque pas de ces huit est subdivisé en 64 pas plus petits, ce qui donnerait un maximum de 512 pas par tour. Autrement dit, chaque étape serait d'environ 0.7 °.

l298n
Article connexe:
L298N: module de contrôle des moteurs pour Arduino

Ajoutez également que vous devriez utiliser certains contrôleur avec lequel contrôler la polarisation, la vitesse, etc., avec, par exemple, H-Bridge. Certains modèles sont les L293, ULN2003, ULQ2003, etc.

Où acheter

Vous achetez-le sur divers sites en ligne ou dans les magasins d'électronique spécialisés. De plus, si vous êtes débutant, vous pouvez utiliser des kits qui comprennent tout ce dont vous avez besoin et même l'assiette Arduino UNO et manuel pour commencer à expérimenter et créer vos projets. Ces kits comprennent tout ce dont vous avez besoin, du moteur lui-même, aux contrôleurs, aux cartes, à la maquette, etc.

Exemple de moteur pas à pas avec Arduino

Arduino avec moteur pas à pas et contrôleur

Enfin, montrez un exemple pratique avec Arduino, utilisant le contrôleur ULN2003 et le moteur pas à pas 28BYJ-48. C'est très simple, mais il vous suffira de commencer à vous familiariser avec son fonctionnement pour que vous puissiez commencer à faire quelques tests et voir comment il se comporte ...

Comme on le voit dans le schéma de câblage, les bobines de moteur A (IN1), B (IN2), C (IN3) et D (IN4) ont été affectées respectivement aux connexions 8, 9, 10 et 11 de la carte Arduino. D'autre part, le pilote ou la carte contrôleur doit être alimenté sur ses broches 5-12V (à GND et 5V d'Arduino) avec la tension appropriée afin qu'il alimente à son tour le moteur connecté au connecteur en plastique blanc qui a ce pilote ou manette.

cette Moteur 28BYJ-48 C'est un moteur pas à pas de type unipolaire avec quatre bobines. Par conséquent, pour vous donner une idée de son fonctionnement, vous pouvez envoyer des valeurs HIGH (1) ou LOW (0) de la carte Arduino aux bobines comme suit pour les étapes:

Étape Bobine A Bobine B Bobine C Bobine D
1 HAUTE HAUTE BASSE BASSE
2 BASSE HAUTE HAUTE BASSE
3 BASSE BASSE HAUTE HAUTE
4 HAUTE BASSE BASSE HAUTE

Quant à esquisse ou code nécessaire pour programmer votre mouvement, comme ce serait le suivant en utilisant IDE Arduino (modifiez-le et expérimentez pour tester comment le mouvement est modifié):

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.