Professional Documents
Culture Documents
tarjeta spartan 3
La prctica del motor a pasos tiene como objetivo mover un motor a pasos mediante una secuencia de
paso a paso hacia la derecha y hacia la izquierda con una frecuencia aproximadamente de 1s.
Para esta prctica se tuvo que ocupar un integrado uln2803 el cual ayuda a controlar el motor a pasos.
Este integrado tiene que ser alimentado con un rango de voltaje de 6-9 V, de lo contrario el motor a
pasos podra quemarse.
Cabe mencionar que el programa en VHDL nos ayudara a poder manipular los pasos de dicho motor
segn su estado anterior y la direccin a la que se debe de mover, para las salidas se tuvo que utilizar
los pines de la spartan y estos llevarlo a la protoboard para de esta manera poder manipularlos con el
integrado.
entity Motor_a_pasos is
Port ( StepDrive : out std_logic_vector(3 downto 0);
Direction : in std_logic;
StepEnable : in std_logic;
CLK : in std_logic);
end Motor_a_pasos;
La variable direction como su nombre lo indica es para indicar la direccin a la que va a girar el motor, el
StepEnable nicamente es un switch que activa o no el movimiento del motor , el reloj que es esencial
para llevar un conteo de pasos y finalmente las salidas de los 4 pines.
Para esto se requieren las siguientes variables temporales:
process(CLK)
begin
if ((CLK'event) and (CLK='1')) then
StepCounter <= StepCounter + 1;
Esto indica que cada vez que el reloj este en frente de subida se le aumentara en 1 al contador de
pasos.
En este apartado se menciona hacia donde va a girar el motor segn la variable direction.
case state is
when "00" =>StepDrive <= "1100";
when "01" =>StepDrive <= "0110";
when "10" =>StepDrive <= "0011";
when "11" =>StepDrive <= "1001";
when others => end case;
end if;
end if;
end if;
end process;
end Behavioral;