
Przydała by mi się jeszcze do tego regulacja prędkości obrotów potencjometrem
Programowo można chyba wszystko ogarnąćk-m-r1 pisze:tylko jak ugryźć to by krokowiec zatrzymał sie tam gdzie chce i danej pozycji
Kod: Zaznacz cały
#include <AccelStepper.h>
const int buttonPin = 3;
const int ledPin = 13;
int buttonState;
int lastButtonState = LOW;
long lastDebounceTime = 0;
long debounceDelay = 50;
AccelStepper stepper(1, 8, 7);
int steps = 1600;
int potPin = A0;
int pot;
int v ;
void setup() {
stepper.setAcceleration(10000);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
//Serial.begin(9600);
}
void loop() {
pot = analogRead(potPin);
v = map(pot, 0, 1023, 500, 3000);
stepper.setMaxSpeed(v);
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
lastDebounceTime = millis();
if (buttonState == HIGH) {
stepper.moveTo(steps);
while(stepper.currentPosition() != steps){
stepper.run();
digitalWrite(ledPin, HIGH);
}
stepper.setCurrentPosition(0);
digitalWrite(ledPin, LOW);
}
}
if ((millis() - lastDebounceTime) > debounceDelay) {
buttonState = reading;
}
lastButtonState = reading;
}
Kod: Zaznacz cały
pot = analogRead(potPin);
v = map(pot, 0, 1023, 50, 200);
stepper.setMaxSpeed(v);