Pour moi le fait de ne pas pouvoir mettre la vitesse a 0 (le 2 en rouge) est un bug, cela plante le programme.
int motorSpeed = map(sensorReading, 0, 1023, 2, 600);
C'est ma première application avec Arduino, j'utilise des PIC's en assembleur ou C.
Le code:
#include <AccelStepper.h>
#define dirPin 8 //dir-
#define stepPin 9 //pull-
#define motorInterfaceType 1
int SPR = 200;
const int buttonPin = 2;
const int buttonPin2 = 4;
int buttonState = 0;
int buttonState2 = 0;
AccelStepper stepper(motorInterfaceType, stepPin, dirPin);
void setup() {
pinMode(dirPin,OUTPUT);
pinMode(stepPin,OUTPUT);
//
stepper.setMaxSpeed(4800);
stepper.setAcceleration(4800);
#define DISSABLE 12
const int buttonPin = 2;
const int buttonPin2 = 4;
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(DISSABLE,OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
stepper.runSpeed();
if (buttonState == true | (buttonState2 == true))
{
digitalWrite(DISSABLE,LOW);
}
else
{
digitalWrite(DISSABLE,HIGH);
}
int stepDirection;
if (buttonState == HIGH) {
int sensorReading = analogRead(A0);
int motorSpeed = map(sensorReading, 0, 1023, 2, 600);
stepper.setSpeed(motorSpeed);
}
else if (buttonState2 == HIGH) {
int sensorReading = analogRead(A0);
int motorSpeed = map(sensorReading, 0, 1023, 2, 600);
stepper.setSpeed(-motorSpeed);
}
}