deplacement moteur avec rampe accel/deccel et bouton ecran lcd

bonjour a tous, j essaye de trouver une manip pour deplacer un moteur pas a pas avec la bibliotheque accel stepper, en utilisant le bouton up pour allez dans un sens, tout en profitant des rampes d accel et deccel, mais le resultat ne m aide pas

g1=-100;

while (g1==-100) { stepper1.run(); stepper1.moveTo(s1);

// Remplissage manuel if (btnUP==getButton()) { //sens anti horaire lcd.setCursor(0, 0); lcd.print("augmente "); lcd.setCursor(0, 1); lcd.print(" "); s1=100000; //consigne de deplacement positif exagerer

} else if (g3==0 && btnLEFT == getButton()) { lcd.setCursor(0, 0); lcd.print("vitesse "); lcd.setCursor(0, 1); lcd.print("rapide "); v1=2000; //vitesse rapide g3=1; } else if (btnNONE == getButton()) { lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); stepper1.stop(); } else if (btnETAPE == getButton()) { // Fin remplissage manuel lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); stepper1.setCurrentPosition(0); // reinitialisation de la position g1=-90; g7 = 0; g3 = 0; printG1(); break; }

if (g3 == 1 && btnNONE == getButton()) { g3 = 2; } if (g3 == 2 && btnLEFT == getButton()) { lcd.setCursor(0, 0); lcd.print("vitesse "); lcd.setCursor(0, 1); lcd.print("lente "); v1=1000; // retour vitesse lente g3=0; } }

resultat lorsque j appui sur up et reste appuyer, le moteur tourne tres tres lentement, lorsque je relache,il tourne plus vite non stop, mais pas encore a la bonne vitesse

mon code initiale sans rampe etait celui ci:

g1=-100;

while (g1==-100) { // Remplissage manuel if (btnUP==getButton()) { //sens anti horaire lcd.setCursor(0, 0); lcd.print("augmente "); lcd.setCursor(0, 1); lcd.print(" "); digitalWrite(DIR, HIGH); analogWrite(11, 127); } else if (g3==0 && btnLEFT == getButton()) { lcd.setCursor(0, 0); lcd.print("vitesse "); lcd.setCursor(0, 1); lcd.print("rapide "); g3=1; TCCR2B = TCCR2B & B11111000 | B00000011; // set timer 2 divisor to 32 for PWM frequency of 980.39 Hz } else if (btnNONE == getButton()) { // Fin remplissage manuel analogWrite(11, 0); } else if (btnETAPE == getButton()) { // Fin remplissage manuel lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); TCCR2B = TCCR2B & B11111000 | B00000100; g1=-90; g7 = 0; g3 = 0; printG1(); break; }

if (g3 == 1 && btnNONE == getButton()) { g3 = 2; } if (g3 == 2 && btnLEFT == getButton()) { lcd.setCursor(0, 0); lcd.print("vitesse "); lcd.setCursor(0, 1); lcd.print("lente "); TCCR2B = TCCR2B & B11111000 | B00000100; g3=0; } }

donc personne n a une astuce pour lancer un stepper.run () via un bouton de l ecran lcd et stepper.stop (), lorsque pas de bouton ou sur front montant et front decendant

cela m etonne