Table des matières:

Arduino : Precision Lib pour moteur pas à pas : 19 étapes
Arduino : Precision Lib pour moteur pas à pas : 19 étapes

Vidéo: Arduino : Precision Lib pour moteur pas à pas : 19 étapes

Vidéo: Arduino : Precision Lib pour moteur pas à pas : 19 étapes
Vidéo: Arduino #21 LE MOTEUR PAS A PAS UNIPOLAIRE 28BYJ-48 " stepper " tuto en français 2024, Juillet
Anonim
Image
Image
Variables globales
Variables globales

Aujourd'hui, je vais vous montrer une bibliothèque pour un pilote de moteur pas à pas complet avec interrupteurs de fin de course et un mouvement de moteur avec accélération et micro pas. Cette Lib, qui fonctionne à la fois sur l'Arduino Uno et sur l'Arduino Mega, vous permet de déplacer les moteurs en fonction non seulement du nombre de pas, mais également des millimètres. Et c'est assez précis aussi.

Une caractéristique importante de cette bibliothèque est qu'elle vous permet de construire votre propre machine CNC, qui n'est pas nécessairement seulement le X, Y, mais aussi un commutateur de section, par exemple, car ce n'est pas un GRBL prêt, mais plutôt la programmation qui vous permet de fabriquer la machine idéale pour vous.

Cependant, la déclaration suivante est un détail important ! Cette vidéo est uniquement pour ceux qui sont déjà habitués à la programmation. Si vous n'êtes pas familier avec la programmation Arduino, vous devriez d'abord regarder d'autres vidéos d'introduction sur ma chaîne. C'est parce que je discute d'un sujet avancé dans cette vidéo spécifique et que j'explique plus en détail la bibliothèque utilisée dans la vidéo: moteur pas à pas avec accélération et fin de course.

Étape 1: Bibliothèque StepDriver

Cette bibliothèque couvre les trois types de pilotes les plus courants sur le marché: A4988, DRV8825 et TB6600. Il configure les broches des pilotes, leur permettant d'effectuer la réinitialisation et le placement en mode veille, ainsi que d'activer et de désactiver les sorties moteur agissant sur la broche Enable. Il définit également les entrées des broches micro-pas du pilote, et les commutateurs de limites et leur niveau d'activation (haut ou bas). Il dispose également d'un code de mouvement du moteur avec accélération continue en mm/s², vitesse maximale en mm/s et vitesse minimale en mm/s.

Pour ceux qui ont regardé les parties 1 et 2 de la vidéo Moteur pas à pas avec accélération et fin de course, téléchargez cette nouvelle bibliothèque disponible dès aujourd'hui, car j'ai apporté quelques modifications à ce premier fichier pour faciliter son utilisation.

Étape 2: Variables globales

Je montre exactement à quoi sert chacune des variables globales.

Étape 3: Fonctions - Réglage des broches du pilote

Fonctions - Réglage des broches du pilote
Fonctions - Réglage des broches du pilote

Ici, je décris quelques méthodes.

J'ai défini le paramètre Pinout et les broches Arduino en sortie.

Étape 4: Fonctions - Fonctions de base du pilote

Fonctions - Fonctions de base du pilote
Fonctions - Fonctions de base du pilote

Dans cette partie, nous travaillons avec la configuration du pilote et ses fonctions de base.

Étape 5: Fonctions - Réglage du pas du moteur

Fonctions - Réglage pas à pas du moteur
Fonctions - Réglage pas à pas du moteur
Fonctions - Réglage pas à pas du moteur
Fonctions - Réglage pas à pas du moteur

Dans cette étape du code, nous configurons le nombre de pas par millimètre que le moteur doit exécuter.

Étape 6: Fonctions - Réglage du mode pas à pas du moteur

Fonctions - Réglage du mode pas à pas du moteur
Fonctions - Réglage du mode pas à pas du moteur
Fonctions - Réglage du mode pas à pas du moteur
Fonctions - Réglage du mode pas à pas du moteur
Fonctions - Réglage du mode pas à pas du moteur
Fonctions - Réglage du mode pas à pas du moteur

Ce tableau montre les réglages pour le mode pas à pas du moteur. Voici quelques exemples.

Étape 7: Fonctions - Réglage des interrupteurs de fin de course

Fonctions - Réglage des interrupteurs de fin de course
Fonctions - Réglage des interrupteurs de fin de course

Ici, je dois lire les valeurs entières et booléennes. Il est nécessaire de définir si la clé active est vers le haut ou vers le bas, tout en définissant la fin de course maximale et minimale.

Étape 8: Fonctions - Lecture des interrupteurs de fin de course

Fonctions - Lecture des fins de course
Fonctions - Lecture des fins de course
Fonctions - Lecture des fins de course
Fonctions - Lecture des fins de course
Fonctions - Lecture des fins de course
Fonctions - Lecture des fins de course

Cette partie est différente de celle de la Lib que j'ai rendue disponible la semaine dernière. Pourquoi l'ai-je changé ? Eh bien, j'ai créé eRead pour remplacer d'autres. Ici, l'eRead lira le LVL, le digitalRead (pin) et renverra TRUE. Tout cela doit être effectué à haute. Le travail suivant avec la clé active sera au niveau bas. Je vais l'utiliser ici pour vous montrer la table "Vérité".

A l'image du code, j'ai placé un schéma qui va aider à comprendre que, dans cette partie du code source, je m'oriente vers l'Ascendant et n'ai pas encore touché la touche de fin de cours.

Maintenant, dans cette image code os bool DRV8825, je montre le moteur toujours en mouvement dans le sens de la croissance. Cependant, le fin de course maximum s'est activé. Le mécanisme doit donc arrêter le mouvement.

Pour la fin, je montre le même mouvement, mais en sens inverse.

Ici, vous avez déjà activé l'interrupteur de fin de cours.

Étape 9: Fonctions - Configuration du mouvement

Fonctions - Configuration du mouvement
Fonctions - Configuration du mouvement

L'utilité principale de la méthode motionConfig est de convertir le millimètre par seconde (une mesure utilisée dans les machines CNC) en pas, afin de répondre au contrôleur d'un moteur pas à pas. C'est donc dans cette partie que j'instancier les variables pour comprendre les pas et non les millimètres.

Étape 10: Fonctions - Fonction de mouvement

Fonctions - Fonction de mouvement
Fonctions - Fonction de mouvement

Dans cette étape, nous traitons la commande qui se déplace d'un pas dans la direction souhaitée dans une période en microsecondes. Nous avons également défini la broche de direction du conducteur, le temps de retard et la direction des interrupteurs de fin de course.

Étape 11: Fonctions - Fonction de mouvement - Variables

Fonctions - Fonction de mouvement - Variables
Fonctions - Fonction de mouvement - Variables

Dans cette partie, nous configurons toutes les variables qui impliquent des périodes de vitesse maximale et minimale, la distance de trajectoire et les étapes nécessaires pour interrompre la trajectoire, entre autres.

Étape 12: Fonctions - Fonction de mouvement - Accélération

Fonctions - Fonction de mouvement - Accélération
Fonctions - Fonction de mouvement - Accélération
Fonctions - Fonction de mouvement - Accélération
Fonctions - Fonction de mouvement - Accélération

Ici, je présente quelques détails sur la façon dont nous sommes arrivés aux données d'accélération, qui ont été calculées à l'aide de l'équation de Torricelli, car cela prend en compte les espaces pour travailler l'accélération et non le temps. Mais, il est important ici de comprendre que toute cette équation ne concerne qu'une seule ligne de code.

Nous avons identifié un trapèze dans l'image ci-dessus, car les RPM initiaux sont mauvais pour la plupart des moteurs pas à pas. La même chose se produit avec la décélération. De ce fait, nous visualisons un trapèze dans la période entre l'accélération et la décélération.

Étape 13: Fonctions - Fonction de mouvement - Vitesse continue

Fonctions - Fonction de mouvement - Vitesse continue
Fonctions - Fonction de mouvement - Vitesse continue
Fonctions - Fonction de mouvement - Vitesse continue
Fonctions - Fonction de mouvement - Vitesse continue

Ici, nous gardons le nombre de pas utilisés dans l'accélération, nous continuons en vitesse continue, et gardons la vitesse maximale, ce qui peut être vu dans l'image ci-dessous.

Étape 14: Fonctions - Fonction de mouvement - Décélération

Fonctions - Fonction de mouvement - Décélération
Fonctions - Fonction de mouvement - Décélération
Fonctions - Fonction de mouvement - Décélération
Fonctions - Fonction de mouvement - Décélération

Ici, nous avons une autre équation, cette fois avec une valeur d'accélération négative. Il est également affiché dans une ligne de code, qui représente, dans l'image ci-dessous, le rectangle intitulé Décélération.

Étape 15: Fonctions - Fonction de mouvement - Vitesse continue

Fonctions - Fonction de mouvement - Vitesse continue
Fonctions - Fonction de mouvement - Vitesse continue
Fonctions - Fonction de mouvement - Vitesse continue
Fonctions - Fonction de mouvement - Vitesse continue

On revient en vitesse continue pour travailler la seconde moitié de la trajectoire, comme on le voit ci-dessous.

Étape 16: Fonctions - Fonction de déplacement - Déplacement des tours

Fonctions - Fonction de déplacement - Déplacement de tours
Fonctions - Fonction de déplacement - Déplacement de tours

Dans cette partie, nous déplaçons le moteur d'un certain nombre de tours dans la direction souhaitée, en convertissant le nombre de tours en millimètres. Enfin, nous déplaçons le moteur dans le sens demandé.

Étape 17: Diagramme de mouvement - Vitesse de position

Diagramme de mouvement - Vitesse de position
Diagramme de mouvement - Vitesse de position

Dans ce graphique, j'ai des données qui ont été extraites de l'équation que nous avons utilisée dans la partie Accélération. J'ai pris les valeurs et joué sur la série Arduino, et je suis passé de cela à Excel, ce qui a donné ce tableau. Ce tableau montre la progression de l'étape.

Étape 18: Diagramme de mouvement - Position Vs. Position

Diagramme de mouvement - Position vs. Position
Diagramme de mouvement - Position vs. Position

Ici, nous prenons la position, en pas, et la vitesse et la convertissons en période, en microseconde. On note dans cette étape que la période est inversement proportionnelle à la vitesse.

Étape 19: Diagramme de mouvement - Vitesse Vs. Moment

Diagramme de mouvement - Vitesse Vs. Moment
Diagramme de mouvement - Vitesse Vs. Moment

Enfin, nous avons la vitesse en fonction de l'instant, et de ce fait, nous avons une droite, puisque c'est la vitesse en fonction du temps.

Conseillé: