Commande de moteur pas à pas

Topic a suppriméeeeeeeeeeeeeeeeeeeee

Bonjour,

Quelle est ta question précise? Qu'est ce que tu as déjà essayé?

Dans ton premier message c'est un moteur à courant continu, maintenant c'est un moteur pas à pas?

Ca ne se pilote pas du tout de la même façon.

Pour ton problème

  • Tu lis la valeur de ton potentiomètre
  • Si la valeur est au voisinage de max/2 tu arrête le moteur
  • Sinon si la valeur est supérieure à max/2 tu commandes le moteur en marche avant
  • Sinon tu commandes le moteur en marche arrière.

oula , moi j'veut juste , que quand je dirige le potentiometre à une direction , le moteur aussi dirige vers la position ,

Ben! c'est ce que fait l’algorithme que je te propose.

car sa me parait plus complexe , j'avais trouvé sa :

/*

#include <Stepper.h>

// change this to the number of steps on your motor
#define STEPS 100

// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 8, 9, 10, 11);

// the previous reading from the analog input
int previous = 0;

void setup() {
// set the speed of the motor to 30 RPMs
stepper.setSpeed(30);
}

void loop() {
// get the sensor value
int val = analogRead(0);

// move a number of steps equal to the change in the
// sensor reading
stepper.step(val - previous);

// remember the previous value of the sensor
previous = val;
}

Ce programme asservit la position du moteur à la position du potentiomètre.
Si c'est ce que tu veux faire, ta question est très mal posée.

Oui excusez moi , c'est sa que je voulait faire

Avant de changer de sens, c'est mieux que le moteur soit à l'arrêt.
Pour arrêter rapidement un moteur il faut dans l'ordre :

  • couper l'excitation
  • court-circuit un enroulement.

Explication : moteur et générateur, c'est comme microphone et hautparleur, c'est le même principe physique.
Quand l'alimentation du moteur est coupée il continue de tourner sur son énergie cinétique : il se transforme en générateur de tension.
Si son ou ses bobinages sont court-circuité cela constituera pour lui une charge énorme et il freinera brutalement.

Un moteur pas à pas se commande avec des ponts en H, les ponts en H prévoient généralement cette possibilité.

Eh bien moi je dirai qu'il faut commencer par le début : présenter un code qui le fait tourner, on se fiche du sens et du potentiomètre a ce stade, avant de changer de sens.

Inscrit il y a 3 heures,
1 mois avant la fin de l'année : Projet scolaire ?

nn une activité , voici le code :
#include <Stepper.h>

#define STEPS 200

Stepper stepper(STEPS, 8, 9, 10, 11);

int previous = 0;

void setup() {

stepper.setSpeed(5);
Serial.begin(9600);
}

void loop() {

int val = analogRead(0);
int step=map(val, 0, 1023, 0, STEPS);
stepper.step(val - previous);
previous = val;
}

Alors Tu as le programme

j'ai essayé sur tinkercad , le probléme que sa ne marche pas trop , le moteur n'asservit pas sur le potentiomètre , j'ai peut etre mal cablé , je vous envoie une image

Comme tu l'as dit il n'y a pas de moteur pas à pas sous tinkercad, donc tu ne peux pas faire fonctionner ton programme.

Mais alors comment je peut faire , avec un potentiometre et un moteur à courant continu ?

C'est beaucoup plus compliqué. Il faut lire la position du codeur et commander le moteur en fonction de cette position et de la valeur du potentiomètre.

Il est d'usage de répondre aux questions posées avant d'en poser d'autres.

Avec des Seriel.read par exemple ?

Je vous ai répondu

En comptant le nombre d'impulsion du codeur.