1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
/*
Stepper Motor Control - one revolution
This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 - 11 of the Arduino.
The motor should revolve one revolution in one direction, then
one revolution in the other direction.
Created 11 Mar. 2007
Modified 30 Nov. 2009
by Tom Igoe
*/
// Utilisation des boutons
// constantes ne vont pas changer. Elles déterminent ici la définition du numero de pin:
const int boutonAPin = 2; // numero de pin du boutonA
const int boutonBPin = 3; // numero de pin du boutonB
// variables qui vont changer :
int boutonAState = 0; // variable pour la lecture du statut du boutonA
int boutonBState = 0; // variable pour la lecture du statut du boutonB
//Gestion du moteur :
// Bibliothèque moteur :
#include <Stepper.h>
// Paramètres du moteur :
// changer ceci pour déterminer le nombre de pas par tour du moteur
const int stepsPerRevolution = 1000;
// Initialise la librairie du moteur sur les pins 8 à 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10,11);
// Début du programme :
void setup() {
// Réglage de la vitesse à 50 rpm:
myStepper.setSpeed(50);
// Initialise le port série :
Serial.begin(9600);
// Initialise le pin boutonA comme une entrée:
pinMode(boutonAPin, INPUT_PULLUP);
pinMode(boutonBPin, INPUT_PULLUP);
}
void loop() {
// Lecture de la valeur du boutonA :
boutonAState = digitalRead(boutonAPin);
// Lecture de la valeur du boutonB :
boutonBState = digitalRead(boutonBPin);
// Vérification si le boutonA est pressé. Si oui, boutonAState est LOW:
if (boutonAState == LOW) {
// révolution d'un tour dans le sens horaire:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(100);
}
// Lecture de la valeur du boutonB :
// boutonBState = digitalRead(boutonBPin);
// Vérification si le boutonB est pressé. Si oui, boutonBState est LOW:
if (boutonBState == LOW) {
// révolution d'un tour dans le sens antihoraire:
Serial.println("clockwise");
myStepper.step(-stepsPerRevolution);
delay(100);
}
int boutonAState = 0; // variable pour la lecture du statut du boutonA
int boutonBState = 0; // variable pour la lecture du statut du boutonB
} |
Partager