MTstepStepper: Exemple 4
Gestion par événements pour UNO, Nano, Mega

Homming

Ce programme donne un exemple de mise à l'origine.

Programme complet recommandé

// Ce programme initialise la position d'un moteur pas à pas, puis fait faire
// un tour dans un sens un tour dans l'autre à un pas à pas

#include  // V1.0.5 Voir http://arduino.dansetrad.fr/MTobjects

const float vitesse = 1 RPS;
const uint8_t fdc = A0; // Fin de course; fermé au repos
boolean initialise = false; // Avant homming, true après


// Partie faisant faire un tout dans un sens, un tour dans l'autre
void inversion(void); // Pré-définition

MTstepStepper Stepper(pin_Step 2, pin_Dir 5, pin_EN 8, accelerations_sur 16*200 pas_ou_micro_pas, 16 pas_ou_micro_pas, vitesse, SENS_PAR_DEFAUT, inversion);

void inversion(void) // Inversion du sens
{
  if (initialise)
  {
    delay(1000); // Attendre un peu avant de repartir dans l'autre sens
    if (Stepper.getPosition() == 0) // Si il est en position de référence
      Stepper.move(Stepper.getMicroStepsPerTurn()); // On fait un tour
    else Stepper.moveTo(); // Sinon on revient en position de référence
  }
}

// Initialisation
void setup()
{
  // Initialisation du fin de course
  pinMode(fdc, INPUT_PULLUP); // Interrupteur entre fdc et Gnd

  // Mise à l'origine
  Stepper.setSpeed(vitesse / 10); // Doucement pendant la mise en référence
  Stepper.move(-CONTINUE); // Retour vers l'origine
  while (!digitalRead(fdc)); // Attente de la position d'origine
  Stepper.stop(); //On est à l'origine; on s'arrête
  Stepper.setOrigin(); // Repérer la position
  initialise = true; // Permettre le fonctionnement normal

  // Cycle normal
  Stepper.setSpeed(vitesse); // Reprise de la vitesse normale pour travailler
  inversion();
}

void loop(){}