viernes, 6 de junio de 2014

Mover dos motores paso a paso con Matlab y Arduino por el puerto serie

Como me ha costado bastante comunicarme por el puerto serie desde Matlab a Arduino UNO y viceversa, lo comparto por si a alguien más le sirve.



La idea es configurar mi Arduino para que mueva dos motores paso a paso. Estos motores llevan además una tarjeta EasyDriver para controlar la etapa de potencia. Los motores en mi caso están conectados a dos rotadores, que llevan un limit switch cada uno para chequear el paso por 0º en cada vuelta. Un tornillo fijo pisará ese limit switch cada vez que pase por 0º.

DC 5V Deceleration Stepper Motor ModuleEasyDriver V4.4 Stepper Motor Driver Board for Arduino (Works with Official Arduino Boards)

La función de Matlab es arduino(motor, pasos, reset).

motor:    puede ser 1 o 2, en función del motor que queramos mover
pasos:    número de pasos que queremos avanzar.
reset:     puede ser 0 o 1. 

Si reset está a 1, movemos el motor que le hayamos indicado hasta que toque el limit switch.
Si reset está a 0, movemos el motor los pasos que le hemos indicado.

La función de Matlab la podéis ver AQUÍ y el sketch en Arduino lo podéis ver AQUÍ

Ya sabéis, primero cargáis el sketch de Arduino y lo compiláis. Después, solo tenéis que ejecutar el script de Matlab. 

Y nada más, espero que os sirva para jugar con vuestros arduinos.

¡Hasta otra!