Con la tarjeta Spartan-3 se pueden controlar varios dispositivos externos, en esta ocasión se controlará un motor a pasos, para poder dar la utilidad que se requiera.
Un motor a pasos es un dispositivo electromecánico que convierte una serie de impulsos eléctricos en desplazamientos angulares discretos, es decir, que es capaz de avanzar una serie de grados (pasos) dependiendo de las entradas de control que este tenga. El motor se comporta paso a paso de la misma manera que un convertidor analógico digital como lo estudiamos en el curso de digitales I y puede ser controlado por impulsos que provengan de sistemas lógicos.
Un motor de pasos se define por su voltaje ya que tienen una tensión eléctrica de trabajo. Este valor normalmente se encuentra en la carcasa o en una hoja de especificaciones. En algunas ocasiones según el uso que se le quiera dar al motor es necesario aplicar un voltaje superior para lograr el torque deseado.
Los motores tienen una resistencia en los bobinados, esta determinará la corriente que consumirá el motor, y su valor afecta la curva de torque y su velocidad máxima de operación.
Finalmente para describir este tipo de motores un factor importante son los grados que desplaza por paso, es decir, define la cantidad de grados que rotará el eje para cada paso completo o semi-paso. Los grados por paso se calculan dividiendo 360 por la cantidad de pasos que se contaron (resolución del motor).
En la tarjeta Spartan-3 existen tres conectores de expansión los cuales poseen una tierra y un voltaje de 3.3V (medidos en la práctica con el multímetro para corroborar el dato). Y es aquí donde se pueden conectar los diferentes dispositivos que se pueden controlar con la tarjeta Spartan-3.
Para que el motor pueda tener el voltaje suficiente para su correcto funcionamiento es necesario utilizar el integrado ULN2803 contiene ocho transistores con emisores comunes e integrales de diodos de supresión para cargas inductivas. Cada integrado cuenta con una capacidad da carga de corriente de 600mA y puede soportar hasta 50V en el estado apagado. Es importante mencionar que en la entrada de voltaje se debe de conectar el voltaje que necesitara el dispositivo que se va a conectar.
Transmisión de datos digitales por los conectores de expansión
Se implementó un código el cual llevará tres variables en el entity, una es la que manda el dato a los conectores de expansión (B), una que es la que manda el dato a los leds (A) y el reloj integrado a la tarjeta (clk).
Se declara la variable clk que es el reloj, que será el que va a hacer que se vaya llevando la secuencia de los pasos y que el cambio se efectúe en un tiempo determinado (esto se puede variar).
La palabra clk’event es la instrucción para que el reloj comience su proceso con un flanco de subida (‘1’), y va a irse sumando a move uno a uno hasta llegar al tiempo de 90000000.
En un diferente proceso se debe de tener la variable “otro” la cual va a ir llevando la secuencia de los pasos dentro de un case con 4 variables que es la secuencia que tiene el motor para los pasos. “A” va a llevar la secuencia en los leds para que se pueda observar y “B” es la que va a llevar la expansión donde va a estar conectado el integrado que a su vez va a estar conectado al motor para que reciba el voltaje necesario para su funcionamiento.
Los números de encendido y apagado es la secuencia que se encuentra en el datasheet del motor utilizado, algo importante es que hay que fijarse con los diferentes hilos que tiene el motor cual es el orden de los pasos. Es recomendable ir probando uno por uno hasta encontrar como va ser la secuencia de los pasos. Una tabla con los colores de los cables y el orden en que se deben conectar resultó ser eficaz para poder llevar de una buena manera el desarrollo de la práctica.