Go Down

Topic: deplacement moteur avec rampe accel/deccel et bouton ecran lcd (Read 130 times) previous topic - next topic

vtec35

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

vtec35

mon code initiale sans rampe etait celui ci:

Quote
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;
       }
  }

vtec35

#2
Feb 13, 2018, 07:33 am Last Edit: Feb 13, 2018, 07:46 am by vtec35
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

Go Up