Bonjour,

Je suis encore novice dans le monde d'Arduino et je doit réaliser un projet dans lequel je doit contrôler la vitesse d'un moteur et son sens de rotation.

Ayant fait quelque recherches, je suis tombé sur ce lien : https://dronebotworkshop.com/big-stepper-motors/ qui explique comment contrôler la vitesse et le sens de rotation d'un moteur pas à pas NEMA 23 à l'aide d'un driver. Pour ce faire il incorpore dans son circuit un potentiomètre (pour contrôler la vitesse) et un bouton (pour contrôler le sens de rotation du moteur).

Ma question est : Comment je pourrais faire pour contrôler la vitesse et le sens de rotation depuis l'algorithme sans passer par le potentiomètre et le bouton? C'est à dire que j'aimerai rentrer une certaine valeur depuis l'algorithme qui correspondrait à la vitesse de rotation du moteur et une autre valeur pour contrôler la fréquence de changement de rotation du moteur (sans utiliser de potentiomètre et de bouton).

Voilà mon code actuel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Defin pins
 
int reverseSwitch = 2;  // Push button for reverse
int driverPUL = 7;    // PUL- pin
int driverDIR = 6;    // DIR- pin
int spd = A0;     // Potentiometer
 
// Variables
 
int pd = 500;       // Pulse Delay period
boolean setdir = LOW; // Set Direction
 
// Interrupt Handler
 
void revmotor () {
 
  setdir = !setdir;
 
}
 
 
void setup( ) {
 
  pinMode (driverPUL, OUTPUT);
  pinMode (driverDIR, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(reverseSwitch), revmotor, FALLING);
 
}
 
void loop() {
 
  pd = map((analogRead(spd)), 0, 1023, 2000, 50);
  digitalWrite(driverDIR, setdir);
  digitalWrite(driverPUL, HIGH);
  delayMicroseconds(pd);
  digitalWrite(driverPUL, LOW);
  delayMicroseconds(pd);
 
}

Merci beaucoup pour toutes réponses de votre part, je vous en suit très reconnaissant.

(PS: j'ai essayer de cherche sur internet comment faire mais je n'y arrive vraiment pas, car je n'ai quasiment aucune notion en ce langage de programmation et quasiment aucune en Arduino....)