Home position - moteur pas à pas

Bonjour à tous !

Petit projet personnel, je suis entrain de me familiariser au moteur pas à pas, j’ai bien compris le principe ainsi que sa programmation; asservir des positions, des vitesses et sens de rotation.

Ma question est la suivante.

Est il possible au démarrage du moteur, ou au milieu du programme d asservir le moteur pas à pas à une position initiale donnée ?

Dois-je forcément passé par un capteur de position pour que mon moteur vienne le flaguer et ainsi définir cette position ?

L’accouplement à une roue codeuse ?

Simplement avec une programmation ?

Merci de m’éclairer !

Quelle solution vous semble la bonne ?

Un moteur pas à pas est toujours dans une position angulaire parfaitement connue, si on connait sa position de départ (en ajoutant le nombre de pas qu'il a fait) et qu'il n'y a pas eu perte de pas (par glissement ou blocage).

Bonsoir, En général, on a une position de référence qui permet de "remettre les compteurs à zéro". Cette position souvent appelée "home" est atteinte par le déplacement sur les axes x, y et z jusqu'aux fins de course. Pour un projet, un temps soit peu sérieux, on ne peut pas se passer des fins de course. A titre d'exemple, le gcode G28 permet le retour vers le point de référence. @+

Super merci, je vais m'y atteler !

Bonjour.
Je déterre ce post pour poser la question, car je ne comprend pas très bien comment connaitre la position “Home” sur un moteur pas à pas.

Je dispose d’une arduino Mega ainsi que d’un moteur 28BYJ-48 avec le controller ULN2003.
J’utilise la librairie Stepper.h.

http://www.geeetech.com/wiki/index.php/Stepper_Motor_5V_4-Phase_5-Wire_%26_ULN2003_Driver_Board_for_Arduino

Quelle est la marche a suivre pour initialiser le moteur toujours dans la même position ?

bonjour, en général, la position "home" se trouve à l'une des extrémités de l'axe de déplacement x,y ou z.

l'idée est de déplacer le la pièce mobile vers cette position dès que le fin de course est activé, on stop le moteur, on est à la position "Home".

Bone continuation Yan_duino

Myoda: Bonjour. Je déterre ce post pour poser la question, car je ne comprend pas très bien comment connaitre la position "Home" sur un moteur pas à pas.

Un moteur pas-à-pas n'a pas de position prédéfinie. La position "home" est déterminée par les éléments externes accouplés au moteur, une roue codeuse, un capteur de position ...

Bonjour, +1 home est liée à la cinématique du dispositif mécanique. En général pour un G28 (déplacement en home), on déplace le le porte outil, axe après axe, vers le fin de course. Une fois le fin de course atteint, on fait un léger déplacement dans l'autre sens pour dégager le fin de course.

fdufnews: Un moteur pas-à-pas n'a pas de position prédéfinie. La position "home" est déterminée par les éléments externes accouplés au moteur, une roue codeuse, un capteur de position ...

D'accord ! Effectivement cela me parais beaucoup plus clair. Il faut un dispositif externe pour fixer la position "home".

Je dois pour un projet réaliser une jauge graduée en tr/min (RPM). Si la carte arduino recoit les données, elle déplace l'aiguille fixé sur l'axe du moteur pour afficher un le nombre de RPM correspondant.

Pour y arriver initialement je pensais utiliser un moteur pas à pas. Mais je me rend compte que : 1) Il n'y a pas de position initial, donc en cas de coupure brutale du flux de données l'aiguille ne retourne pas en position initiale. (sauf dispositif externe) 2) je ne peux pas travailler avec des angles mais en nombre de pas. 3) La position n'est jamais vraiment connue et est toujours approximative.

Donc j'ai choisi d'utiliser un cerveau moteur qui possède une position home et travaille avec un angle connu.

Pouvez-vous me confirmer cela ?

Bonjour Myoda,

1)

1) Il n'y a pas de position initial, donc en cas de coupure brutale du flux de données l'aiguille ne retourne pas en position initiale. (sauf dispositif externe)

un simple disque avec un trou et une barriere optique peuvent resoudre ton probleme pour ce que tu veux faire puisque tu travailles sur un seul tour.

2)

2) je ne peux pas travailler avec des angles mais en nombre de pas.

la plupart des moteurs pas a pas font une revolution avec 200 pas soit 1,8° par pas.

3)

3) La position n'est jamais vraiment connue et est toujours approximative.

la position est connue par toi puisque c'est toi ou ton Arduino qui l'y aura amenee. La position est tres stable. Par exemple, a partir de la position de reference trouvee avec ton disque, tu programmes 100 pas, tu fais juste 1/2 tour. Maintenant, tu dois aller 90° dans l'autre sens, 50 pas et c'est tout.

Petite precision : on n'ecrit pas cerveau moteur mais bien servo moteur ;-)

Jacques