Taula de continguts:

Arduino: Precision Lib per al motor pas a pas: 19 passos
Arduino: Precision Lib per al motor pas a pas: 19 passos

Vídeo: Arduino: Precision Lib per al motor pas a pas: 19 passos

Vídeo: Arduino: Precision Lib per al motor pas a pas: 19 passos
Vídeo: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Juliol
Anonim
Image
Image
Variables globals
Variables globals

Avui us mostraré una biblioteca per a un controlador de motor de pas complet amb interruptors de límit i el moviment del motor amb acceleració i micro pas. Aquest Lib, que funciona tant a l’Arduino Uno com a l’Arduino Mega, permet moure els motors basant-se no només en el nombre de graons, sinó també en mil·límetres. I també és força precís.

Una característica important d’aquesta biblioteca és que us permet construir la vostra pròpia màquina CNC, que no és necessàriament només la X, Y, sinó també un commutador de secció, per exemple, perquè no és un GRBL preparat, sinó la programació que us permet fabricar la màquina ideal per a vosaltres.

Tanmateix, la següent afirmació és un detall important. Aquest vídeo és només per a aquells que ja estan acostumats a programar. Si no esteu familiaritzat amb la programació d’Arduino, primer hauríeu de veure altres vídeos introductoris al meu canal. Això es deu al fet que estic discutint un tema avançat en aquest vídeo específic i explico amb més detall el Lib utilitzat al vídeo: Motor de pas amb acceleració i final de cursa.

Pas 1: biblioteca StepDriver

Aquesta biblioteca cobreix els tres tipus de controladors més habituals al mercat: A4988, DRV8825 i TB6600. Configura els pins dels controladors, cosa que els permet realitzar el restabliment i la col·locació en mode de repòs, així com activar i desactivar les sortides del motor que actuen sobre el pin Habilita. També estableix les entrades dels pins micro-passos del controlador i limita els commutadors i el seu nivell d'activació (alt o baix). També té un codi de moviment del motor amb acceleració contínua en mm / s², velocitat màxima en mm / s i velocitat mínima en mm / s.

Per a aquells que van veure les parts 1 i 2 del vídeo Step Motor with Acceleration and End of Stroke, descarregueu aquesta nova biblioteca disponible avui, perquè he fet alguns canvis en aquest primer fitxer per facilitar-ne l’ús.

Pas 2: variables globals

Mostro exactament per a què serveixen cadascuna de les variables globals.

Pas 3: Funcions: configuració dels pins del controlador

Funcions: configuració dels pins del controlador
Funcions: configuració dels pins del controlador

Aquí descric alguns mètodes.

He configurat la configuració de Pinout i els pins Arduino com a sortida.

Pas 4: Funcions: funcions bàsiques del controlador

Funcions: funcions bàsiques del controlador
Funcions: funcions bàsiques del controlador

En aquesta part, treballem amb la configuració del controlador i les seves funcions bàsiques.

Pas 5: Funcions - Configuració del pas del motor

Funcions - Configuració del pas del motor
Funcions - Configuració del pas del motor
Funcions - Configuració del pas del motor
Funcions - Configuració del pas del motor

En aquest pas del codi, configurem la quantitat de passos per mil·límetre que ha d'executar el motor.

Pas 6: Funcions: configuració del mode de pas del motor

Funcions: configuració del mode de pas del motor
Funcions: configuració del mode de pas del motor
Funcions: configuració del mode de pas del motor
Funcions: configuració del mode de pas del motor
Funcions: configuració del mode de pas del motor
Funcions: configuració del mode de pas del motor

Aquesta taula mostra els paràmetres per al mode de pas del motor. Aquí en teniu alguns exemples.

Pas 7: Funcions: configuració dels interruptors de límit

Funcions: configuració dels interruptors de límit
Funcions: configuració dels interruptors de límit

Aquí he de llegir els valors sencers i booleans. Cal establir si la tecla activa està cap amunt o cap avall, mentre es defineix el límit màxim i mínim de fixació final.

Pas 8: Funcions: lectura dels interruptors de límit

Funcions: lectura de commutadors de límit
Funcions: lectura de commutadors de límit
Funcions: lectura de commutadors de límit
Funcions: lectura de commutadors de límit
Funcions: lectura de commutadors de límit
Funcions: lectura de commutadors de límit

Aquesta part és diferent de la del Lib que vaig fer disponible la setmana passada. Per què el vaig canviar? Bé, he creat eRead per substituir-ne d’altres. Aquí, l'eRead llegirà el LVL, el digitalRead (pin) i retornarà TRUE. Tot això s’ha de dur a terme al màxim. El següent treball amb la tecla activa serà al nivell baix. La faré servir aquí per mostrar-vos la taula "Veritat".

A la imatge del codi, he col·locat un diagrama que ajudarà a entendre que, en aquesta part del codi font, estic avançant cap a Ascendent i encara no he pres la tecla final de curs.

Ara, en aquesta imatge del codi boolè DRV8825, mostro que el motor encara es mou en direcció creixent. No obstant això, el commutador de límit màxim s'ha activat. El mecanisme, doncs, ha d’aturar el moviment.

Per últim, mostro el mateix moviment, però en direcció contrària.

Aquí ja teniu activat el commutador de final de curs.

Pas 9: Funcions: configuració del moviment

Funcions: configuració del moviment
Funcions: configuració del moviment

La principal utilitat del mètode motionConfig és convertir mil·límetres per segon (una mesura que s’utilitza a les màquines CNC) en passos, per tal de complir amb el controlador d’un motor pas a pas. Per tant, és en aquesta part que instanco les variables per entendre els passos i no els mil·límetres.

Pas 10: Funcions - Funció de moviment

Funcions - Funció de moviment
Funcions - Funció de moviment

En aquest pas, tractem l'ordre que mou un pas en la direcció desitjada en un període en microsegons. També establim el passador de direcció del conductor, el temps de retard i la direcció dels interruptors de límit.

Pas 11: Funcions - Funció de moviment - Variables

Funcions - Funció de moviment - Variables
Funcions - Funció de moviment - Variables

En aquesta part, configurem totes les variables que impliquen períodes de velocitat màxima i mínima, distància de trajectòria i passos necessaris per interrompre la trajectòria, entre d’altres.

Pas 12: Funcions - Funció de moviment - Acceleració

Funcions - Funció de moviment - Acceleració
Funcions - Funció de moviment - Acceleració
Funcions - Funció de moviment - Acceleració
Funcions - Funció de moviment - Acceleració

Aquí presento alguns detalls sobre com vam arribar a les dades d’acceleració, que es van calcular a través de l’equació de Torricelli, ja que es tenen en compte els espais per treballar l’acceleració i no el temps. Però, aquí és important entendre que tota aquesta equació només tracta d’una línia de codi.

Vam identificar un trapezi a la imatge superior, perquè els RPM inicials són dolents per a la majoria de motors pas a pas. El mateix passa amb la desacceleració. Per això, visualitzem un trapezi en el període comprès entre l’acceleració i la desacceleració.

Pas 13: Funcions - Funció de moviment - Velocitat contínua

Funcions - Funció de moviment - Velocitat contínua
Funcions - Funció de moviment - Velocitat contínua
Funcions - Funció de moviment - Velocitat contínua
Funcions - Funció de moviment - Velocitat contínua

Aquí mantenim el nombre de passos utilitzats en l’acceleració, continuem en velocitat contínua i mantenim la velocitat màxima, que es pot veure a la imatge següent.

Pas 14: Funcions - Funció de moviment - Desacceleració

Funcions - Funció de moviment - Desacceleració
Funcions - Funció de moviment - Desacceleració
Funcions - Funció de moviment - Desacceleració
Funcions - Funció de moviment - Desacceleració

Aquí tenim una altra equació, aquesta vegada amb un valor d'acceleració negatiu. També es mostra en una línia de codi, que representa, a la imatge següent, el rectangle anomenat Desacceleració.

Pas 15: Funcions - Funció de moviment - Velocitat contínua

Funcions - Funció de moviment - Velocitat contínua
Funcions - Funció de moviment - Velocitat contínua
Funcions - Funció de moviment - Velocitat contínua
Funcions - Funció de moviment - Velocitat contínua

Tornem a la velocitat contínua per treballar la segona meitat de la trajectòria, com es veu a continuació.

Pas 16: Funcions - Funció Mou - Mou torns

Funcions - Funció Mou - Mou torns
Funcions - Funció Mou - Mou torns

En aquesta part, movem el motor en un cert nombre de voltes en la direcció desitjada, convertint el nombre de voltes en mil·límetres. Finalment, movem el motor en la direcció sol·licitada.

Pas 17: gràfic de moviment: velocitat de posició

Gràfic de moviment: velocitat de posició
Gràfic de moviment: velocitat de posició

En aquest gràfic, tinc dades extretes de l’equació que hem utilitzat a la part d’Acceleració. Vaig agafar els valors i vaig jugar a la sèrie Arduino, i vaig passar d’aquesta a Excel, cosa que va donar lloc a aquesta taula. Aquesta taula mostra el progrés del pas.

Pas 18: gràfic de moviment: posició vs. Posició

Diagrama de moviment - Posició vs. Posició
Diagrama de moviment - Posició vs. Posició

Aquí prenem la posició, per passos, i la velocitat i la convertim en punt, en microsegons. Observem en aquest pas que el període és inversament proporcional a la velocitat.

Pas 19: gràfic de moviment: Velocity vs. Moment

Diagrama de moviment: Velocity vs. Moment
Diagrama de moviment: Velocity vs. Moment

Finalment, tenim la velocitat en funció de l’instant i, per això, tenim una línia recta, ja que és la velocitat en funció del temps.

Recomanat: