Boas,
Já tinha prometido isto vai para largos meses ao metRo_ , mas acabei por nunca colocar na totalidade aqui no
forum pois o código é usado em vários projecto e tem muitas interdependências com os mesmos, o que o torna
problemático de separar do resto dos projectos, alem das questões de copyright.
Assim, acabei por implementar um driver independente, totalmente autónomo que pode ser muito facilmente
incluído em qualquer outro projecto, fácil de configurar ao hardware e fácil de usar (penso eu) e que está
razoavelmente encapsulado para evitar grandes complicações.
Foi pensado, e implementado, para correr em MCUs STM32 mas pode ser facilmente alterado para correr em
qualquer outro MCU, o código é 100% C99 compatível por isso é facilmente compilado por qualquer toolchain.
Eu uso o Keil, podem efectuar o download deste na versão "free" que dá para pequenos projectos e para teste.
Algumas características:
- STM32Fx compatível (usa "StdPeriph Lib" da ST - não testado com o STM32F0xx)
- Funciona com stepper ICs que usam a interface SD (translator, ou com inputs "Step" e "Dir")
- Controla 2 motores totalmente independentes
- Rampa de aceleração e desaceleração configurável e independente para cada motor (um pode estar a
acelerar e o outro a desacelerar)
- Velocidades de 2 a 1000 passos por segundo (pode ser alterado)
- Velocidade constante (Move) ou posicionamento (Goto) independente e simultânea para os dois motores
- Contador com a posição actual do motor (respeita a direcção dos movimentos)
- Direcção CW (clockwise) ou CCW (counterclockwise )
- Usa somente um TIMER (TIMER3, pode ser alterado)
- Permite assignar qualquer pino IO para DIR e STEP
- E mais umas cenas ...
O "source", e um projecto de exemplo para o Keil, estão em anexo.
Espero que seja útil, qualquer duvida "postem" aqui no forum enviem um email para o endereço que está nos
ficheiros do source.
Abraços,
PA