Buenos dias a todos,
Bueno, hace tiempo le puse un motor PaP a la fresadora, para hacer el avance automatico. Opte por un Motor PaP porque tengo mas de la mano el uso y control de estos motores al igual que la adaptacion a la fresadora era sencilla.
Necesitaba entonces un control sencillo para el motor, que me permitiera cambiar de velocidad y de direccion, poco mas. Implemente algo rapido en Arduino, super basico....con millis() y un control a traves de un encoder para subir o bajar la velocidad y un switch para derecha izquierda o parado. El invento era 100% funcional, pero me faltaba algo, me faltaba ver los mm/min a los que iba sin necesidad de contarlo a mano con el DRO o similares, a si que pense en darle una vuelta...
Este proyecto esta basado en Arduino, porque necesitaba tener algo rapido y estoy mas familiarizado con Arduino que con otras plataformas, la idea en un futuro es migrarlo a STM, un cortex M3 o similar pero por ahora quiero desarrollar algo completo en Arduino y luego migrarlo sin la presion de necesitar algo funcional.
La idea es MUY basica, poder controlar el driver del motor (Senyales EN, DIR y PULSE) con el Arduino, pudiendo seleccionar que feedrate queremos en mm/min.
Basicamente esto esta parametrizado en:
-- Pulse/rev configurado en el Driver (Adaptable en el codigo del arduino)
-- Paso del husillo del eje de vuestra maquina (Adaptable en el codigo del arduino)
Por ahora he considerado motores de 1.8deg por pulso, si se usan de 0.9Deg por pulso, se podria adaptar facilmente, quiza lo anyada en el codigo, por ahora no lo tiene.
De esta manera podemos configurar los mm/min que queremos y la programacion se encarga de adaptar los pulsos al Driver.
Como perifericos del Arduino, que necesitamos:
(Por ahora esto es el primer prototipo, no descarto disenyar una PCB para este proyecto)
-- Un Switch the tres posiciones con bloqueo en las 3
-- Un Encoder con pulsador
-- Modulo DCDC entrada 40V salida 5V (Para convertir los 36V de la power supply del motor a 5V)
-- Arduino Nano
-- Pantalla LCD 16x2 con adaptador I2C
-- Un punyado de resistencias, condensadores y transistores BJT
Ire poniendo por aqui tanto esquematicos, como el codigo fuente que aun tengo que refinar aunque sea el basico para subirlo, y toda la informacion necesaria para poder replicar este proyecto.
Para futuras implementaciones a corto plazo:
-- Implementar alguna funcion de seguridad, como que al iniciar el control, aunque el switch este en posicion de moverse Derecha o Izquierda no se mueva y pida una verificacion al usuario
-- Implementar perfiles de aceleracion
-- Implementar menus para poder configurar on the fly parametros como steps/rev, el paso del husillo..., sin necesidad de entrar en el codigo
-- Implementar unos endstop virtuales, que quiere decir esto? Basicamente una opcion que te permita decirle al control cuantos mm quieres avanzar automaticamente, hasta el paro automatico, si por ejemplo tenemos una pieza de 100mm, poner 120mm y que recorra la pieza y se pare automaticamente.
Un pequenyo video del funcionamiento por ahora.
A medida que vaya teniendo tiempo ire implementando nuevas funciones y dandole una vuelta de tuerca al disenyo electronico porque ahora mismo no dispone de ninguna proteccion, generalmente los DRIVERs de los motores la entradas digitales van a traves de optoacopladores, pero quiza implemente alguna proteccion en este lado.
De igual forma cuando lo tenga pulido ire incluyendo mas informacion del conexionado, programacion.... Necesito un poco de tiempo
Bueno, hace tiempo le puse un motor PaP a la fresadora, para hacer el avance automatico. Opte por un Motor PaP porque tengo mas de la mano el uso y control de estos motores al igual que la adaptacion a la fresadora era sencilla.
Necesitaba entonces un control sencillo para el motor, que me permitiera cambiar de velocidad y de direccion, poco mas. Implemente algo rapido en Arduino, super basico....con millis() y un control a traves de un encoder para subir o bajar la velocidad y un switch para derecha izquierda o parado. El invento era 100% funcional, pero me faltaba algo, me faltaba ver los mm/min a los que iba sin necesidad de contarlo a mano con el DRO o similares, a si que pense en darle una vuelta...
Este proyecto esta basado en Arduino, porque necesitaba tener algo rapido y estoy mas familiarizado con Arduino que con otras plataformas, la idea en un futuro es migrarlo a STM, un cortex M3 o similar pero por ahora quiero desarrollar algo completo en Arduino y luego migrarlo sin la presion de necesitar algo funcional.
La idea es MUY basica, poder controlar el driver del motor (Senyales EN, DIR y PULSE) con el Arduino, pudiendo seleccionar que feedrate queremos en mm/min.
Basicamente esto esta parametrizado en:
-- Pulse/rev configurado en el Driver (Adaptable en el codigo del arduino)
-- Paso del husillo del eje de vuestra maquina (Adaptable en el codigo del arduino)
Por ahora he considerado motores de 1.8deg por pulso, si se usan de 0.9Deg por pulso, se podria adaptar facilmente, quiza lo anyada en el codigo, por ahora no lo tiene.
De esta manera podemos configurar los mm/min que queremos y la programacion se encarga de adaptar los pulsos al Driver.
Como perifericos del Arduino, que necesitamos:
(Por ahora esto es el primer prototipo, no descarto disenyar una PCB para este proyecto)
-- Un Switch the tres posiciones con bloqueo en las 3
-- Un Encoder con pulsador
-- Modulo DCDC entrada 40V salida 5V (Para convertir los 36V de la power supply del motor a 5V)
-- Arduino Nano
-- Pantalla LCD 16x2 con adaptador I2C
-- Un punyado de resistencias, condensadores y transistores BJT
Ire poniendo por aqui tanto esquematicos, como el codigo fuente que aun tengo que refinar aunque sea el basico para subirlo, y toda la informacion necesaria para poder replicar este proyecto.
Para futuras implementaciones a corto plazo:
-- Implementar alguna funcion de seguridad, como que al iniciar el control, aunque el switch este en posicion de moverse Derecha o Izquierda no se mueva y pida una verificacion al usuario
-- Implementar perfiles de aceleracion
-- Implementar menus para poder configurar on the fly parametros como steps/rev, el paso del husillo..., sin necesidad de entrar en el codigo
-- Implementar unos endstop virtuales, que quiere decir esto? Basicamente una opcion que te permita decirle al control cuantos mm quieres avanzar automaticamente, hasta el paro automatico, si por ejemplo tenemos una pieza de 100mm, poner 120mm y que recorra la pieza y se pare automaticamente.
Un pequenyo video del funcionamiento por ahora.
A medida que vaya teniendo tiempo ire implementando nuevas funciones y dandole una vuelta de tuerca al disenyo electronico porque ahora mismo no dispone de ninguna proteccion, generalmente los DRIVERs de los motores la entradas digitales van a traves de optoacopladores, pero quiza implemente alguna proteccion en este lado.
De igual forma cuando lo tenga pulido ire incluyendo mas informacion del conexionado, programacion.... Necesito un poco de tiempo