Arduino Polska Forum
AccelStepper i zmiana prędkości w locie... - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Silniki, Mechanika i Zasilanie (https://forum.arduinopolska.pl/dzial-silniki-mechanika-i-zasilanie)
+--- Wątek: AccelStepper i zmiana prędkości w locie... (/watek-accelstepper-i-zmiana-pr%C4%99dko%C5%9Bci-w-locie)



AccelStepper i zmiana prędkości w locie... - PierwszyWolnyLogin - 10-08-2019

Cześć

Mam mały zgryz z silnikiem krokowym. Próbuję zastosować bibliotekę AccelStepper
i zmieniać prędkość silnika "w locie". Za grzyba mi to nie wychodzi.
Jakakolwiek próba zmiany powoduje, że silnik kręci się ze swoją ulubioną prędkością
i nie reaguje na zmiany.... Możecie zerknąć w próbny kod? Czy coś robię źle, czy też
ta biblioteka nie pozwala na zmianę prędkości w trakcie pracy?

PWL

Kod:
#include <AccelStepper.h>

#define dirPin 3
#define stepPin 2
#define motorInterfaceType 1

int spid=100;
float czas=0;

AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);

void setup()

  Serial.begin(115200);
  stepper.setMaxSpeed(1000);
}

void loop()

  //Serial.println(czas);
  if (millis()>czas+1000)
  {
    spid+=100;
    if (spid>=1000) { spid=100; }
    Serial.println(spid);
    stepper.setSpeed(spid);
    stepper.runSpeed();
    czas=millis();
  }
}



RE: AccelStepper i zmiana prędkości w locie... - kaczakat - 11-08-2019

I tak nieźle, że się kręci. W przykładzie jest stepper.runSpeed(); bezpośrednio w loop, widocznie im częściej jest to wywoływane tym lepiej. No i jaką prędkość osiągnie to zależy od silnika, taki popularny do Arduino to tak gdzieś koło 500 się kończy.


RE: AccelStepper i zmiana prędkości w locie... - PierwszyWolnyLogin - 11-08-2019

Tak, masz rację! Przegapiłem fakt, że stepper.runSpeed(); musi byc bezpośrednio w loop()i wywoływane
za każdym okrążeniem jak często się da. Poprawiłem i można regulować prędkość zmieniając zmienną.
Dzięki!

PWL