bonjour,
je suis débutant en programmation et c'est ma premiere experience en ARDUINO et j'enface le probleme suivant : je veux construire un programme qui me permet de lire la valeur de nombre de tour d'un arbre de vilebrequin(a travers un encodeur YUMO E6A2 CW3C 200p/m ) et ensuite utiliser cette valeur pour commander le moteur pas a pas(NMB PM55L 48p/tr) pour faire un un nombre de pas précis
par exemple: pour une valeur de 250 tr/mn mesurée sur le vilebrequin le moteur pas a pas doit faire 5 pas (j'utilise le sens horaire c'est tout)
pour cela j'ai fait le code suivant pour l'encodeur
#code de encodeur
double val=0;
byte PinA=2;
byte PinB=3;
int ASet;
int BSet;
void setup()
{
Serial.begin(9600);
pinMode(PinA, INPUT);
pinMode(PinB, INPUT);
ASet = digitalRead(PinA);
BSet = digitalRead(PinB); // read the input pin
attachInterrupt(0, INCRE, CHANGE);
attachInterrupt(1, DECRE, CHANGE);
analogWrite(8, 100); // for Motor Driving purpose only
}
void loop()
{
int time=millis()/1000;
if(time % 10==0)
{
Serial.print(time);
Serial.print(" \t ");
Serial.print(val*6/200);
Serial.println(" rpm");
val=0;
delay(1000);
}
}
void INCRE()
{
ASet = digitalRead(PinA) == HIGH;
val += (ASet != BSet) ? +1 : -1;
}
void DECRE()
{
BSet = digitalRead(PinB) == HIGH;
val += (ASet == BSet) ? +1 : -1;
}
mon probleme c'est que je n'arrive pas a construire le code du moteur convenablement et l'introduire avec le code de l'encodeur
voila le code du moteur que j'ai fait
#include stepper
const int stepsPerRevolution = 48;
Stepper myStepper(stepsPerRevolution, 8,9,10,11);
stepstotake = 0
void setup() {
// set the speed at 60 rpm: myStepper.setSpeed(60);
// initialize the serial port: Serial.begin(9600);
}
void loop() {
if val*6/200 = 200
stepstotake = 5
else if val*6/200 = 500
stepstotake = 8
else if val*6/200 = 750
stepstotake = 12
else if val*6/200 = 1100
stepstotake = 14
else stepstotake=0
}