sábado, 14 de julio de 2012

Servo-controlador para motores paso a paso









Control de motores paso a paso a través del protocolo Modbus ASCII, con dos Arduinos Mega 2560 (uno para Maestro y el otro para Esclavo). Para la conexión Esclavo/Motores se utilizan los chips BEDs (Big Easy Driver). 
Al principio el programa pide que se le asigne una velocidad a los motores (X e Y) y envía una trama con esta información al Esclavo. A continuación pregunta si se desea iniciar un proceso de calibración, si se pulsa 1, se envía esta solicitud. Mientras el Esclavo hace el proceso de calibración (primero para el motor X y luego para el motor Y), el Maestro comprueba cada cierto tiempo (aprox. 500ms) si éste ha finalizado, a la misma vez que comprueba esto, también lee otros estados y sensores del Esclavo.
Cuando ha finalizado el proceso de calibración, el Maestro pide los valores del rango de calibración, por defecto el inicio se ha considerado 0 tanto para el motor X, como par el Y, por lo tanto solo pide los valores finales. Todo es esta dentro de un bucle, pero las peticiones anteriores ya no se volverán a pedir. A continuación se pide una coordenada (en micropasos) para el motor X y otro para motor Y, este valor que se introduce debe de estar entre 0 y el valor final de la calibración. Si se ha introducido un número que no cumpla este valor o un carácter incorrecto, lo volverá a pedir, si es correcto envía una trama al Esclavo la cual ara mover los motores a las posiciones deseadas. Por último comprueba los diferentes estados y posiciones del Esclavo, y a lo ultimo de este bucle lee las posiciones de los motores.



    Conexión Maestro  




Conexión Esclavo