Go Down

Topic: Problème de commande de moteur pas a pas (Read 238 times) previous topic - next topic

plopiche

Bonjour,

J'utilise un Arduino Motor Shield Rev3 pour piloter un moteur pas à pas bipolaire.

Dans mon application le moteur doit tourner d'un certain angle (Dans les essais 45°)

Le départ de la rotation est commandé par un appui sur un bouton poussoir relié à une entrée logique de l'Arduino Uno

ça fonctionne, mais aussi bien à la mise sous tension qu'a la fin de la rotation le moteur est bloqué et il consomme.

J'aimerais que pour les deux positions extrêmes il n'y ait pas de consommation et que le rotor soit libre.

Puis-je faire cela avec la library "stepper" ?

Sinon quelle pourrait être la solution ?

Je vous remercie pour votre aide.

vtec35

tu n a pas une entrée ENABLE sur ton drivers?

si oui tu l activera ou desactivera ici

PBZOOM

en complément de vtec 35

sur  l 'Arduino Motor Shield Rev3  ,enables A,B correspondant aux pattes 8 et 14 du l298n ,
 elles mêmes  câblés aux broches 3 et 11 ,(pwma et pwmb )

dans votre programme "en teorie..." vous devriez avoir du "digital write " vers les pin 3 et 11
c 'est cette valeur de Modulation de Largeur d' Impulsion qu 'il faudra mettre a 0 .

  ps : vérifier  en cas d'erreur  datasheat l298 + schémas rev3 +schémas de v câblage moteur +v prog..

vtec35

question que je pose ici, car j ai pas eu ma reponse ailleurs



comment on test l'etat du moteur pour savoir si il est en cours de mouvement ou non?


avec accell.stepper, j ai essayé plein de truc en vain



if (stepper1.isRunning())
if (!stepper1.isRunning())
if (stepper1.isRunning()==1)
if (stepper1.isRunning()==0)
if (stepper1.isRunning()==true)
if (stepper1.isRunning()==false)

rien ne marche

PBZOOM

en cherchant bien dans un exemple rattaché a votre fonction isRunning ( )
 
de la librairie accell.stepper je découvre :

 dans l 'exemple MotorShield.pde

"Adafruit Motor Shield et Arduino pin names for interface to 74HCT595 latch:"

je dirai donc que cette librairie ne fonctionnera pas avec votre carte .....
si non il vous faut comparer:

schemas de Adafruit Motor Shield  et schemas de Arduino Motor Shield Rev3 
et votre cablage . pour d' eventuelle coresp.... mais bon a vous de voir...

vtec35

merci, alors dans mon cas j'ai un arduino mega ou uno





et là avec mon programme qui est fini a 99.99%, j'ai absolument besoin de tester le mouvement du moteur, sans cette fonction, impossible de faire boucler correctement

ou je sais pas on peut pas tester le pwm de ma sortie "pulse", et si elle est a 0 pendant un certain temps on considere le moteur comme arreter, sinon comme en mouvement?

PBZOOM

c'est con , mais que c 'est rageant d' être a 0,01% de la réussite , non ?






vous pouvez vérifier  de deux  méthode

1°)   100 % software
 effectivement "tester" le pwm de votre sortie  , en partant de votre programme , qui est fini a 99,999%  et qui est présent attendez je cherche  post 1 ,2 , 3 , 4,5 ....
ben NON ...c' est balo ... votre programme est présent a 0,0000 %

 alors vous pouvez  faire plein de truc bidules avec votre programme dans le monde de la supputation , vous étes seul maitre , et vous pouvez vous faire la question et la réponce .
bien venu au pays des mytos...

2°)  99% hardware

le l298n   pin2 et pin 19  (boitier PowerSO20) , datasheat l298 + schémas rev3
tous consultables sur le net , a l' exception ,bien sur , de votre schémas de câblage ...

bien venu dans le monde réel .

plopiche

Bonjour,

Je suis arrivé a libérer le rotor en utilisant au bon moment dans le programme la commande de frein  de la library "Stepper"

Go Up