• 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
#10
(03-02-2022, 02:15)kaczakat napisał(a): Może ustawiasz złą prędkość/przyspieszenie. Jak miałem takie silniczki za 1$ to tylko się grzały w bezruchu jak się ustawiło coś za dużo.
To powinno działać, ale nie mam aktualnie żadnego krokowca pod ręką, ustaw swoje piny, akurat na tych miałem ledy:
Dziękuję za odpowiedź. Zawsze jestem pod wrażeniem ludzi, którzy poświęcają swój czas, by pomóc innym.
Niestety przesłany kod działa bardzo dziwnie. Najpierw porusza  się w prawo, a potem wolniutko zaczyna wracać w nieskończoność. Pozostałej części kodu to już w ogóle nie rozumiem. Dlatego się poddałem i zrezygnowałem z biblioteki Accelerstepper do robienia time lapsów. Zastąpiłem ja prostym kodem, który najpierw przesuwa głowicę, następnie ją obraca i robi fotkę. To całkowicie zaspakaja moje oczekiwania.
Napisałem natomiast inny program, którego zadaniem jest, by w określonym czasie "s" przesunąć w poziomie wózek z kamerą z konkretną prędkością "Prp" i jednocześnie obrócić głowicę o zadany kąt z prędkością "Pro". Po czasie "s" powinno nastąpić wyłączenie sterowników i zatrzymanie całego ruchu. Prędkości zostały obliczone z uwzględnieniem długości prowadnicy. Do odliczenia czasu użyłem funkcji millis. I znowu klapa. Silniki pracują bez końca. Gdzie jest błąd?
Oto kod:

#include <AccelStepper.h>

const int s = 10  ; // Czas przejazdu (sek)
const int Prp = 800 ; // Prędkość w poziomie( kroki/sek)
const int Pro = 480 ; //Prędkość głowicy( kroki/sek)

unsigned long Ac = 0; // Aktualny cas
unsigned long Zc = 0; // Zapamiętany czas
unsigned long Rc = 0; // Różnica czasu( Ac-Zc)

AccelStepper stepper1(1, 7, 6);
AccelStepper stepper2(1, 9, 8);
const int enablePin1 = 10; // Steruje wyłączaniem sterowników
const int enablePin2 = 11;

void setup() {
  pinMode(enablePin1,OUTPUT);
  pinMode(enablePin2,OUTPUT);
  digitalWrite(enablePin1,LOW);
  digitalWrite(enablePin2,LOW);
 
  stepper1.setMaxSpeed(10000);
  stepper2.setMaxSpeed(10000);

  stepper1.setSpeed(Prp);
  stepper2.setSpeed(Pro);
}

void loop() { 

  Ac = millis();
  Rc = Ac-Zc;
  if (Rc <= 5000UL) {
 
    Zc = Ac;
 
  stepper1.runSpeed();
  stepper2.runSpeed();
  }
  else
{
  digitalWrite(enablePin1,HIGH);
  digitalWrite(enablePin2,HIGH);
}
}
 
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: 1 gości