Stepper e posizioni

vorrei cercare tramite la lettura dello stato dello swich di azzerare il contatore cosi potrei portare lo stepper alla posizione desiderata.

if(digitalRead(limitswitchPinsx) == LOW) {
        for(int x = 0; x < 1600; x++) {
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
    //lcd.print(" azzeramento in corso ");
    //Serial.println(" azzeramento in corso ");
  }
}  
  else{
    
    digitalWrite(ledOutGiallo, HIGH);    // il pin ledOut è collegato ad un led per fare prove
   for(int x = 0; x < 1600; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
  }

    //lcd.print(" azzeramento eseguito "); 
    //Serial.println(" azzeramento eseguito ");
  }

    
  delay(1000);  // pausa di 1 secondo

dove "limitswitchPinsx" e la lettura dello stato dello swich
settato cosi "pinMode(limitswitchPinsx, INPUT_PULLUP); // e quello dello switch quale INPUT"
collegato al pin "const int limitswitchPinsx = 6; //pin 6 finecorsa "

mi date qualche consiglio garzie.

La accelstepper ha degli esempi di movimento verso posizione

Potresti cominciare dal provare un suo esempio

Poi aggiungere una seconda posizione da raggiungere

Poi magari una terza

Poi provare a ciclare tra queste posizioni

E così ti fai un po' "le ossa" su queste cose...

Passo successivo è provare lo "homing"
Con una lenta marcia indietro e reset del contatore allo scatto del micro

Più preciso sarebbe allo scatto del micro ripartire in avanti ancora più lentamente e fare lo zero al succesdivo "rientro" del micro

Meglio ancora usare micro e resolver con canale di zero, te lo avevo già consigliato

Fatto questo hai tutti gli elementi che ti servono

Ti avevo già consigliato di guardare gli esempi della accelstepper
Quali hai già provato?

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.