Programmation inversion pas à pas Crouzet

gb8686

New Member
Bonjour à tous,
Je suis nouveau ici et consulte ce forum depuis peu.
Félicitations pour tout ce que l'on peut y trouver : des gens performants, formidables, des programmes sympas...
Bravo à tous.
Je débute sur Picaxe, peut être trop vite.
Je souhaite programmer un moteur pas à pas Crouzet 82930, 10w, 48 pas (tension 12v ??)
C'est un bipolaire, 2 enroulements séparés, 4 fils.
J'ai un Picaxe 08M2 et une carte avec L293.
J'ai tenté le programme page 18 du manuel 3 sans succès.
J'ai rajouté l'affectation des sorties dirsc = %00010111 sans succès.
J'ai trouvé un autre bout de programme pour Picaxe 08 en fichier joint.
Pour mes essais, cela fonctionne après avoir rajouté dirsc = 00010111.
Au moment de la simulation, avec une vitesse faible (symbol delay = 1000), je constate qu'avant l'inversion de sens, après la temporisation, le moteur fait toujours un pas de plus dans le même sens avant d'inverser sa rotation. Même constat ''dans l'autre sens'' avant la nouvelle inversion.
D'où cela peut-il provenir ? Quelqu'un aurait-il une idée ?
Avez-vous quelques autres exemples de programmation ?
Avec tous mes remerciements.
View attachment Moteur Crouzet pas à pas 3.bas
 

PieM

Senior Member
Bonjour,

Et bienvenue...


A priori, lorsque vous changez de sens votre moteur, vous quittez le sens précédent sur un pas, et vous attaquer l'autre sens par un pas qui peut se trouver à la suite du précédent, puisque vous partez d'une séquence différente. C'est un peu le problème de ce type de programme. En fait un changement de sens doit se faire en lisant la même séquence, mais dans l'autre sens ...

L'utilisation du 08M2 n'est pas très pratique car on ne peut utiliser des sorties qui se suivent sur un même port, C.3 n'étant pas utilisable.

Quelques topos sur les PaP : Ici mais avec des 18M2 ...
 

westaust55

Moderator
Le moteur est-il (82   002 de   930) un moteur pas à pas unipolaire (82   015 de   930) ou bipolaire ?
http://www.crouzet.com/english/products/micromotors/stepper-motors/direct-drive-stepper-motors/7-5-10-watts.htm

le programme page 18 du manuel 3 est pour un type bipolaire moteur pas à pas.

Ce code peut fonctionner pour vous
Code:
'Programme moteur pas à pas CROUZET 82930


#picaxe 08M2
#freq m4

symbol singlestep = 4
symbol halfstep = 8
symbol delay = 100	'vitesse
symbol repeats =20	'max 255

symbol stepcount = b0
symbol counter = b1

'Sorties utilisées
'outpout0
'outpout1
'outpout2
'outpout4
let dirsC = %00010111

do
	'Simple pas, marche avant
	for counter = 1 to repeats
		for stepcount = 1 to singlestep
			lookup stepcount, (0,%10010,%10001,%00101,%00110),pins
			pause delay
		next stepcount
	next counter
	
	pause 2000
	
	'Simple pas, marche arrière
	for counter = 1 to repeats
		for stepcount = 1 to singlestep
			lookup stepcount, (0,%00110,%00101,10001,%10010),pins
			pause delay
		next stepcount
	next counter
	
	pause 2000
	
	
loop
 

gb8686

New Member
Bonjour à vous deux.
Merci pour votre réponse rapide.

A PieM : J'ai trouvé le topo sur le forum après avoir posté (lisez bien dans le forum avant de poster !!!)
J'ai la carte Chi035A, je vais donc essayer, mais plus tard.

A Westaust55 : Selon la doc que j'ai trouvée et le moteur que j'ai testé, c'est un bipolaire 4 fils de référence 82 930 002.
Je vais essayer votre nouveau code.
Pourquoi 5 valeurs dans la parenthèse et à quoi correspondent-elles (avec 4, cela ne fonctionne pas) ?
Pourquoi 5 valeurs pour chaque séquence, par exemple %00110 et non 0110 ?
Je vous tiens informé un peu plus tard.
Merci.
 

PieM

Senior Member
Bonjour,

Pourquoi 5 valeurs dans la parenthèse et à quoi correspondent-elles (avec 4, cela ne fonctionne pas) ?
Pourquoi 5 valeurs pour chaque séquence, par exemple %00110 et non 0110 ?
votre programme est :

for stepcount = 1 to singlestep
lookup stepcount, (0,$01,$10,$04,$02),pins
pause delay
next stepcount

le premier élément de lookup est à l'adresse 0, non à 1 . donc il est normal d'avoir quelque chose en position 0 qui n'est pas lu, en fait.
Pour avoir 4 éléments dans la parenthèse il faut ecrire:

singlestep = 3
for stepcount = 0 to singlestep
lookup stepcount, ($01,$10,$04,$02),pins
pause delay
next stepcount

D'autre part, le code que vous utilisez un code qui n'actionne qu'une seule bobine du PaP à la fois.
Le code de Westaust assure un fonctionnement au couple maxi: deux enroulements sont sous tension à chaque pas.

Pour compléter le problème que vous rencontrez:

votre séquence sens 1 est $01,$02,$04,$10
votre séquence sens 0 est $01,$10,$04,$02

Quand vous quittez le sens 1 c'est avec $10
mais vous attaquez le sens 0 avec $01 ce qui est la même chose que la suite du $10 dans la première séquence !
Logique que le PaP fasse un pas de plus dans le même sens lors du changement.

Voyez le code de Westaust, il ne comporte pas ce problème.

Dans votre cas vos séquences pourraient être:
$01,$02,$04,$10
$04,$02,$01,$10

dans un cas on passe du $10 au $04
inversement, on passe du $10 au $01
 

gb8686

New Member
Bonjour,

Merci pour la réponse et les précisions.
Je vais étudier cela attentivement.
Cordialement.
 
Top