Exemple: Fin_de_course

Ce programme fait tourner le moteur jusqu'en butée (fin de course). Dans cet exemple on suppose que le contact est fermé lorsqu'on l'actionne, et qu'il est connecté entre la broche de l'Arduino et la masse.

Liens

Pour faire fonctionner cet exemple, il faut soit télécharger QuickStepExemples.zip contenant tous les fichiers d'exemples, soit télécharger Fin_de_course.zip contenant cet exemple, soit créer un répertoire du nom de l'exemple et mettre dedans:
- le fichier Fin_de_course.ino de l'exemple
- le fichier de configuration QuickStepConf.h propre à cet exemple
- les trois fichiers (QuickStep.h, QuickStep.cpp et digitalWriteFast.h) pour avoir la bibliothèque (identiques pour toutes les applications)

QuickStepConf.h (extrait)

//  Hybride 200pas/tr en mode 16 micro-pas
#define UN_TOUR (200L*16) pas_ou_micro_pas
#define VITESSE_MAXI 1 RPS
#define STEP 2
#define DIR 5
#define ENABLE 8

Fin_de_course.ino

#
  $menu = ":QS";
  include "QuickStep.h"

const uint8_t FIN_DE_COURSE = 11; // Broche

void setup()
{
  // Initialisation de QuickStep
  quickStepInit();

  // Initialisation du bouton
  pinMode(FIN_DE_COURSE, INPUT_PULLUP);

  // Initialisation du moteur à l'origine
  quickStepRotation(MIN_PAS, VITESSE_MAXI/20); // Retour infini
  while (digitalRead(FIN_DE_COURSE) == HIGH); // Attend du fin de course
  quickStepStopMoteur(); // Arrête le moteur
  quickStepOrigine(); // Initialise le compteur des pas absolu
}

void loop()
{ 
  // Travail par exemple:
  delay(2000);
  quickStepRotation(UN_TOUR/8, VITESSE_MAXI);
  quickStepRotationAbsolu(position_absolue 0, VITESSE_MAXI);
  quickStepWait();
}

On fait donc tourner le moteur en arrière avec un nombre de pas "infini". Quand on arrive sur le capteur, on s'arrête et on fixe l'origine. La partie loop() représente le travail normal, l'initialisation est faite une seule fois dans le setup().