Étape 2: Le code
Maintenant que vous avez le circuit intégré, copiez le code ci-dessous et passé dans votre ide ARDUINO
#include < Stepper.h >
const int encoderPinA = 2 ; droit
const int encoderPinB = 3 ; gauche
const int encButton = 4 ; bouton poussoir encodeur
int encoderPos = 0 ; compteur
unsigned int lastReportedPos = 1 ; changer
public static boolean tournant = false ; Debounce
A_set booléen = false ;
B_set booléen = false ;
const int stepsPerRevolution = 200 ;
Stepper myStepper (stepsPerRevolution, 8, 9, 10, 11) ; goupilles de pont en h
void setup() {}
myStepper.setSpeed(60) ;
pinMode (encoderPinA, INPUT_PULLUP) ; permettant aux tractions
pinMode (encoderPinB, INPUT_PULLUP) ;
pinMode (encButton, INPUT_PULLUP) ;
attachInterrupt (0, doEncoderA, changement) ; broche 2
attachInterrupt (1, doEncoderB, changement) ; broche 3
Serial.Begin(9600) ;
}
void loop() {}
rotation = true ; réinitialiser le debouncer
Si (lastReportedPos! = encoderPos) {}
Serial.println(encoderPos) ;
lastReportedPos = encoderPos ;
Si (digitalRead(encButton) == faible)
{
encoderPos = (encoderPos * 100) ; changer le 100 à combien de pas
} //you veulent le stepper pour déplacer quand
myStepper.step(encoderPos) ; le bouton est poussé vers le bas
encoderPos = 0 ;
}
}
void doEncoderA() {}
Debounce
Si le retard (rotation) (1) ; Attendez un peu que le rebond se fait
Test de transition
Si (digitalRead(encoderPinA)! = A_set) {/ / debounce une fois de plus
A_set = ! A_set ;
ajuster le compteur + si A conduit B
Si (A_set & & ! B_set)
encoderPos += 1 ; changer le 1 pour les mesures à prendre lorsque le codeur activé
rotation = false ; pas plus debouncing jusqu'à ce que loop() frappe à nouveau
}
}
Interruption sur B modification État
void doEncoderB() {}
Si le retard (rotation) (1) ;
Si (digitalRead(encoderPinB)! = B_set) {}
B_set = ! B_set ;
le rajustement counter - 1 si B conduit A
Si (B_set & & ! A_set)
encoderPos-= 1 ; changer le 1 pour les mesures à prendre lorsque le codeur activé
rotation = false ;
}
}
Maintenant que vous avez toutes les choses courir tourner la molette, si le stepper tourne à l’inverse que ce que vous voulez juste intervertir 2 fils sur un côté de la commande de moteur (un seul côté pas les deux).
Ensuite, poussez le bouton vers le bas et tournez l’encodeur, est devrait tourner 100 étapes dans la direction, vous avez activé l’encodeur. Si vous souhaitez modifier le stepper se déplace lorsque vous tournez le codeur juste combien de pas regarde le code, sa a commenté sur les 3 lieux vous devez le changer. Lorsque vous modifiez la valeur du bouton poussoir n’oubliez pas il sera multiplié par la valeur des étapes normales.
J’espère que ce tutoriel a été utile, si vous avez des questions ou commentaires, veuillez les laissent et mal revenir vers vous dès que possible...