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().