• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Accelestepper i kłopoty
#8
(02-02-2022, 14:34)kaczakat napisał(a): Andrzeju, nie denerwuj się, ale w ogóle nic nie zrozumiałaś jak to ma działać. Nie możesz sobie w loop wstawiać delajów w ogóle, a  po 1000ms w szczególności. W żadną część kodu w sumie też nie.
stepper1.run(); ma się uruchamiać milion x na sekundę i sprawdzać czy już upłynęło te 50us (czy ile tam ma upłynąć zależnie od wybranej prędkości i przyspieszenia) by wykonać 1/pierdyliarderową obrotu. Jak wstawisz delaya 1000 to on się kręci, ale efekty kręcenia zauważysz, jak już Twoje wnuki pójdą na studia. Albo i nie jeśli inna część programu ustaliła błędnie, że stepper1.distanceToGo() == 0, ujemną prędkość lub przyspieszenie.
Na początku wydawało mi się to takie proste. Chciałem wykonać jednocześnie dwoma silnikami różne ilości kroków, odczekać jakiś czas, zrobić to ponownie zadaną ilość razy. Spędziłem już w internecie ponad 10 godzin. I wszystko jak krew w piach. Jedyne co zrobiłem to to (szkic poniżej). Silniki wprawdzie się kręcą, ale nie jednocześnie.  Dlatego prosiłbym Cię bardzo, abyś wprowadził do tego kodu odpowiednie zmiany. Myślę, że w ten sposób pomożesz mi zrozumieć gdzie robiłem błędy.

#include <AccelStepper.h>

const int stepPin1 = 7; // Silnik nr 1  ruch poziomy
const int dirPin1 = 6;

const int stepPin2 = 9;  //Silnik nr 2 ruch obrotowy głowicy
const int dirPin2 = 8;

AccelStepper stepper1 = AccelStepper(1, stepPin1, dirPin1);
AccelStepper stepper2 = AccelStepper(1, stepPin2, dirPin2);

void setup() {

  pinMode(stepPin1,OUTPUT);
  pinMode(dirPin1,OUTPUT);
  pinMode(stepPin2,OUTPUT);
  pinMode(dirPin2,OUTPUT);
  stepper1.setMaxSpeed(1000);
  stepper1.setAcceleration(500);
  stepper2.setMaxSpeed(1000);
  stepper2.setAcceleration(500);
}


void loop() {

if(flag){
for(int i = 0; i <= 2; i++){
ruch();

delay(3000); //trzeba wpisać 100*Omk
}
flag=false;
}
}


  void ruch(){
   
  stepper1.move(1000); 
  stepper2.move(2000); 
  stepper1.runToPosition(); 
  stepper2.runToPosition();
     
  }
 
Odpowiedź
  


Wiadomości w tym wątku
Accelestepper i kłopoty - przez andrzejn - 01-02-2022, 22:09
RE: Accelestepper i kłopoty - przez kaczakat - 02-02-2022, 00:39
RE: Accelestepper i kłopoty - przez andrzejn - 02-02-2022, 00:52
RE: Accelestepper i kłopoty - przez kaczakat - 02-02-2022, 04:06
RE: Accelestepper i kłopoty - przez andrzejn - 02-02-2022, 10:39
RE: Accelestepper i kłopoty - przez andrzejn - 02-02-2022, 11:00
RE: Accelestepper i kłopoty - przez kaczakat - 02-02-2022, 14:34
RE: Accelestepper i kłopoty - przez andrzejn - 02-02-2022, 21:12
RE: Accelestepper i kłopoty - przez kaczakat - 03-02-2022, 02:15
RE: Accelestepper i kłopoty - przez andrzejn - 04-02-2022, 15:45
RE: Accelestepper i kłopoty - przez kaczakat - 04-02-2022, 23:53
RE: Accelestepper i kłopoty - przez andrzejn - 05-02-2022, 20:07
RE: Accelestepper i kłopoty - przez kaczakat - 05-02-2022, 21:22
RE: Accelestepper i kłopoty - przez andrzejn - 08-02-2022, 21:15
RE: Accelestepper i kłopoty - przez kaczakat - 08-02-2022, 21:31
RE: Accelestepper i kłopoty - przez andrzejn - 09-02-2022, 12:05
RE: Accelestepper i kłopoty - przez kaczakat - 09-02-2022, 20:39
RE: Accelestepper i kłopoty - przez andrzejn - 10-02-2022, 20:43

Skocz do:


Przeglądający: 2 gości