Electromag1 Circuits électroniques et Picaxes

Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier.
Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer.
Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens).
Les pages  seront ajoutées ou modifiées petit à petit.
Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater.
Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr .  Tout message reçoit une réponse
Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche
Pour laisser un message, allez dans le "LIVRE D'OR"
Bonne visite
 
 

Pilotage des moteurs pas à pas

Le test porte sur un petit moteur bipolaire 5 V démonté d'un scanner, on trouve ces moteurs un peu partout, imprimantes, scanners, disques durs,etc... et ils finissent généralement à la poubelle, dommage.

Le µC est un picaxe 14M2, 4 sorties pilotent un driver L293D, relié aux deux bobines du moteur
Un potentiomètre pour faire varier la vitesse, avec changement de sens au centre. Un poussoir pour passer de pas entiers à demis pas, et inversement.
Cet essai est minimaliste, pour des moteurs plus puissants, il faut aussi gérer le courant moteur. Un classique est le couple L297 + L298 dont on trouve des descriptions sur la toile.
Pour le petit moteur de scanner, le L293D est suffisant.

Le schéma:


 
Le code:

Quelques explications complémentaires:
La première partie du code, jusqu'à la boucle Do Loop est une initialisation:  désignations des noms de variables, du picaxe utilisé, de la fréquence horloge, activation de pullup et d'une interruption sur la broche C.2
Par la commande : Moteur=outpinsB :
outpinsB désigne les broches B.0 à B.5 du picaxe.
Moteur est un octet 
Les broches B.5:...:B.0 vont prendre les valeurs de bit5:...bit0 de l'octet Moteur.
 
La boucle principale Do Loop
Commence par la lecture du potentiomètre de vitesse, qui introduit une pause entre les impulsions transmises au moteur. La lecture donne une valeur de 0 à 255
Cette valeur de vitesse est divisée en trois par le "select case"
- Case else ,entre 123 et 133, le moteur ne reçoit aucune impulsion et le courant dans les bobines est nul. C'est un choix, le moteur ne chauffe pas mais le couple est nul.
- case > 133, la valeur calculée "vitesse" donne une valeur de 0 à 122 (erreur: 121)
Le pas alterne entre 1 et 2 à chaque passage dans l'interruption, déclenchée par le poussoir.
La séquence des polarisations des bobines est mémorisié dans un "lookup".
Les 8 combinaisons correspondent à une commande en demi pas, en ne prenant qu'une combinaison sur deux, on passe en pas entier. Le compteur est incrémenté de 1 ou de 2, au choix.
Le compteur est un octet dont on ne garde que les trois derniers bits, il tourne sur 8 valeurs entre 0 et 7 (équivalent à un modulo 8).
A chaque passage, la commande "lookup" scanne les valeurs mémorisée et sélectionne la  combinaison  correspondante à la valeur du compteur cpt pour alimenter les bobines par la variable Moteur.
- case < 123, fonctionnement identique, mais le compteur est décrémenté, les combinaisons sont lues à l'envers, et le moteur tourne dans l'autre sens.
 

Vidéo de demo du code ci-dessus:
 



Créé avec Créer un site
Créer un site