Comment positionner un moteur pas à pas en fonction de sa position precedente?

Bonjour,

Je voudrais savoir comment positionner un moteur pas à pas en fonction de sa position précédente avec un boutton par position et avec une prise d'origine (position 0 avec capteur fin de course)

Par exemple (ci-joint une photo) :

-au debut l'aiguille est en position 0.
-si j'appuie sur le boutton 1 > l'aiguille va en position 1
-ensuite j'appuie sur le boutton 3 > l'aiguille va en position 3 (sans passer par l'origine)
-ensuite j'appuie sur le boutton 2 > l'aiguille va en position 2 (toujours sans passer par l'origine)
etc.

Donc pour faire ca il faut bien que le moteur se souvienne de sa position précédente non?
ca se traduit comment en code?

PS : Je débute, je sais faire du copier/coller de tuto mais faire un programme à ma sauce c'est autre chose.

Merci pour votre aide.

bonjour,
tu réponds à ta propre question.
position départ = fin de course
position 1 => avancer de X pas
position 2 => avancer de X pas
position 3 => avancer de X pas

Si :
position 0=0(pas)
position 1=10(pas)
position 2=20(pas)
position 3=30(pas)

Tu as une variable qui contient la position actuelle

Quand tu appuis sur un bouton, tu calcule ; "pas vers position"-"pas position précédente"

exemple 1 : tu est en position 1 (10 pas) tu appuis sur '3' tu dois faire 30-10=20 pas

exemple 2 : tu est en position 3 (30 pas) tu appuis sur '2' tu dois faire 20-30=-10 pas

Merci.

Je pensais bien à cette logique d'opération mais comment traduit on ça en code (notamment la variable qui contient la position actuel)?

Merci

simplement en mettant une variable position par exemple.

position =0
si appuie bouton 1=> avancer de X pas
position = 1
si appuie bouton 2=> avancer de X pas
position = 2
etc....

EDIT :
si tu disais exactement ce que tu veux faire

car vu ton dessin, un servo moteur pourrait le faire facilement

position 0 = 0
position 1 = 10 degréq
position 2 = 30 degrés
etc...
après lorsque tu appuie sur un des boutons, il a déjà la variable en mémoire, plus la peine de se taper des calculs.
myservo.write(0)
myservo.write(10)
myservo.write(30)

(Voici une image de ce que je veux faire).

Je veux donner plusieurs positions aux lames d'un abat jour voire les mettre en mouvement de façon coordonnées.

Pour ce qui est du moteur j'y ai bien réfléchi et je reste sur le moteur pas à pas (28BYJ48), pourquoi?

Je veux un moteur qui tourne en continu (nombre de tour max : environ 10 tours) avec un positionnement précis.
Ce qui me dérange dans le servo moteur ou dans le motoréducteur est que je ne pourrais les contrôler qu'en terme de temps ce qui nécessite trop de temps de tests empiriques pour un résultat que je trouverait trop approximatif.

J'aurai bien garder un servo pour son rapport couple/vitesse et son positionnement angulaire en lui changeant de potentiomètre (potentiomètre 10 tours si ca existe ou encore 1 tour en l'engrenant sur un roue denté de rapport 1/10 mais ca fait trop de boulot et d'encombrement.

Je veux un moteur qui tourne en continu (nombre de tour max : envriron 10 tours) avec un positionnement précis.
Ce qui me dérange dans le servo moteur ou dans le motoréducteur est que je ne pourrai les controler qu'en terme de temps ce qui nécessite trop de temps de tests empiriques pour un résultat que je trouverait trop approximatif.

non un servomoteur se pilote en angle et non en temps
on lui dit de se mettre à la position 30 dégrés, il va y aller, pas besoin d'avoir une notion de temps.

tu aurais le même soucis avec un PAP, ou il va falloir déterminer le nb de pas a faire pour arriver à telle position.

mais bon, c'est toi qui voit

si on peut controler un servo a rotation continu en angle je suis preneur.

Est ce que quelqu'un pourrait me montrer un code en rapport avec mon projet s'il vous plait?

Regarde http://eskimon.fr/.
Tu trouveras tous ce que tu as besoin pour ton projet. Si tu ne comprend pas quelque chose, nous pourrons te l'expliquer.

Bonjour,
Hélas je comprend pas grand chose, c'est du chinois.