CNC - PROGRAMACION (Parte VIII) - Control de Motores|
Control Independiente de Motores:
Perdón, me estaba faltando uno más, es que bueno, debes comprender, son las ansias de terminar, apuesto que te resultará muy familiar este programa, mira...
Anteriormente utilizamos estos controles en un programa que nos permitía trazar una imagen, línea por línea, esta vez lo utilizaremos para mover los motores de cualquier eje, indicándole la cantidad de pasos que deberá dar, con posibilidades de apagar el puerto en cualquier momento si es que fuese necesario.
Su mayor utilidad, es desplazar la herramienta sobre la superficie de trabajo, especialmente cuando se desea ubicarla en el punto Cero o mejor aún, cuando necesitas saber cuál será la altura inicial, es decir, para cuando desees calibrar la máquina.
Las bases del funcionamiento del programa ya lo vimos anteriormente, aquí solo le agregaremos el control de los motores, que será muy similar al que usamos en los que describimos en páginas anteriores.
Para mover los motores, o mejor dicho, para girar el motor dos pasos consecutivos, debe haber un cierto retardo, que como ya vimos, un timer es demasiado lento, lo que hacemos es utilizar un bucle For...Next.
La Cantidad de pasos a dar que en mi caso sería la cantidad de puntos a desplazarse, se cargan en una variable llamada "cuentapasos" luego esta se va decrementando hasta llegar a cero, en ese caso se habrán alcanzado la cantidad de pasos que se deseaban dar.
Los valores que se muestran en los 3 Text inferiores, son simplemente la cantidad de pasos que se están avanzando, esto es para tener una idea de la distancia que se logra alcanzar para una determinada cantidad de pasos, que por supuesto, puedes ponerlos a cero en cualquier momento, y así reiniciar la cuenta.
Avance en los ejes X,Y
Como los avances en los ejes x,y son uno-a-uno, los valores para incrementar en cada coordenada serán -1, 0, ó 1, esto es debido a que los desplazamientos son horizontales, verticales, o diagonales (a 45º), por ejemplo, cuando el desplazamiento es vertical u horizontal, uno de los ejes tomará el valor 0 y el otro será -1 ó 1.
Si el desplazamiento es en diagonal (para este programa siempre será a 45º) ninguno de los ejes podrá tomar el valor 0 y los posibles desplazamientos surgen de la combinación entre -1 y 1, bien, estos valores se cargan en una variable llamada plusX,plusY que también la vimos anteriormente.
Para entender mejor los desplazamientos, vamos a ir de adelante para atrás, y comencemos con las llamadas al Puerto
Call PortOut(888, (EjeX(Xi) + EjeY(Yi)))
Es importante recordar que estamos manejando matrices para cada motor, las variables Xi,Yi como ya sabemos, son los índices de los elementos de cada matriz, que deben ser 8 (por que estamos trabajando a medios pasos), ahora bien, para dar una secuencia de pasos estos deben irse incrementando o decrementando según el caso, pues para ello es que se le suman los valores plusX,plusY
'incrementa la secuencia de pasos
Xi = Xi + plusX
Yi = Yi + plusY
Si le hechas un ojo... en algún momento superarás la cantidad de elementos de la matriz, y eso te arrojará un error de desbordamiento (creo que se llama así, "Error de desbordamiento"), entonces eso es lo que debemos controlar, para ello hicimos este pequeño bloque de código...
If plusX > 0 And Xi = 7 Then Xi = -1
If plusX < 0 And Xi = 0 Then Xi = 8
If plusY > 0 And Yi = 7 Then Yi = -1
If plusY < 0 And Yi = 0 Then Yi = 8
y ahora sí, ya se puede comprender lo que viene a continuación, que no es otra cosa que la suma de los valores correspondientes a una secuencia de pasos a dar, y que se envían al registro de datos del puerto paralelo
Call PortOut(888, (EjeX(Xi) + EjeY(Yi)))
Bueno, el resto ya lo conocemos, así que, ni para que hablar, más bien dejo todo en tus manos para que lo analices, practiques y hagas lo que quieras con ello, por cierto dejo también en tus manos el análisis para el desplazamiento en el eje z, que supongo no te debería traer problemas si vienes practicando desde el principio todo lo que vimos, de acuerdo, aquí esta...
Hemos llegado al final. Los programas que se encuentran para descarga, están sometidos a pruebas y continuas modificaciones, es más todavía están funcionando en mi PC, así es que no quiero quejas ni nada por el estilo, y menos que me pidas que haga un programa para tu máquina ok...?, no es que sea malo, sino que se supone que le echarás manos al código para mejorarlo, y aprender más de ellos, y publicarlos...!!!, por supuesto, y con un poco de voluntad me lo harás saber...
Cordiales Saludos...
R-Luis...