Bonjour
Voilà mon dilemne. Je souhaite commander de manière basique un moteur pas à pas (surement bipolaire car le seul unipolaire que j'avais ne semble pas fonctionner (1 bobine morte ?)).
L'idée est de soit me servir d'un ULN2003 (moteur unipolaire) soit d'un L298 (moteur bipolaire) et je faire le contrôle par le pic afin d'économiser sur le L297. J'ai déjà des ULN2003 et L298 en stock ainsi que des pics 16F628A. Donc je pars avec ce matériel.
Le but à terme est de pouvoir faire un programme permettant de faire avancer disons 2s le moteur dans un sens puis 1s dans l'autre puis 5s dans l'autre (exemple, mais cela devra pouvoir être changer facilement).
Je suis parti sur l'idée suivante:
- dans le main, j'ai des fonctions de ce genre:
- faire avancer le moteur 2s
- faire reculer le moteur 1s
- faire avancer le moteur 5s
Avec une fonction de type anvancermmoteur(int time) et reculer_moteur(int time).
Au début de la fonction je configure un timer correspondant au temps voulu. Une fois le timer déclenché dans l'interruption je mets à jour une variable. Dès que cette variable est à jour, je finis la fonction et je passe donc à la suivante.
Dans la fonction avance ou recule, j'aurais un "switch case" pour faire avancer mon moteur selon la bonne séquence.
Mon problème:
Je désire pour des raisons de coût fonctionner avec l'oscillateur interne. D'après la datasheet c'est soit 4Mhz soit 48khZ.
Dilemne: avec un oscillateur 4Mhz, il me semble difficile de configure un des 3 timers du 16f628a pour des périodes de l'ordre de la seconde( dois-je rajouter un compteur dans une variable alors ?)
avec un oscillateur 48kHz, il me semble délicat (trop lent) de piloter le moteur (ou alors c'est faisable). Qu'en pensez vous ?
Merci d'avance pour votre aide
PS: et merci d'avoir tout lu
-----