Znaleziono 2 wyniki

autor: pitsa
13 sie 2024, 12:37
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Jak ustalić stabilne 200 kroków na obrót.
Odpowiedzi: 6
Odsłony: 675

Re: Jak ustalić stabilne 200 kroków na obrót.

G33 ? ;-)

Kod: Zaznacz cały

osX.run()
osY.run()
i jadą obie na raz.
autor: pitsa
13 sie 2024, 08:27
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Jak ustalić stabilne 200 kroków na obrót.
Odpowiedzi: 6
Odsłony: 675

Re: Jak ustalić stabilne 200 kroków na obrót.

W accelstepper to trzeba tylko w pętli wykonywać .run() i wcześniej zadeklarować parametry ruchu.

Kod: Zaznacz cały

AccelStepper osX(1, pinSTEPX, pinDIRX);  //   pin  - STEP, pin  - DIR

 osX.setMaxSpeed(2000.0);  
 osX.setSpeed(2000.0);     
 osX.setAcceleration(50000.0); 
Przykład:

Kod: Zaznacz cały

// rozkaz ruchu jednej osi:
    osX.moveTo(osX.currentPosition()+3880400);
// przykladowa kontrola ruchu z dodatkowymi przerywaczami ruchu:
   while( n < 4 && osX.distanceToGo()!=0 && koniec == 1 ) { 
     osX.run() ;  // wymagane ciagle wywolywanie dla plynnego ruchu
     INDU = digitalRead(pinINDU) ;   // dodatkowo czujnik indukcyjny zatrzymuje ruch
     if ( INDU==0 ) { ale po kilku wykryciach, co stosowalem gdy zdarzaly sie zaklocenia przy czujniku mechanicznym
             Serial.print("i"); // to mi sygnalizowalo zadzialanie czujnika mechanicznego
             n=n+1;   // i po zliczeniu do zadanej wyżej w warunku granicy przerwało dzialanie
     }
     if ( czasn < millis() ) {   // to wywolanie yield() potrzebne jest na esp8266 zeby soft watch dog nie restartowal procka
             yield() ; czasn = millis() + 200 ; 
             koniec = int(pcf.read(5)) ; // i przy okazji co te 0,2s sprawdzam czy z ekspadera nie ma sygnalu konca.
             if (koniec == 0 ) {
                Serial.print("!");// sygnalizacja że stąd jest zatrzymanie
              }
          }
        } ;

Wróć do „Jak ustalić stabilne 200 kroków na obrót.”