ARDUINO stegmotor kontrollerad med rotationsencoder och l293d eller SN754410NE chip (2 / 2 steg)
Steg 2: Koden
Nu när du har kopiera kretsen byggt koden nedan och förbi det till din ARDUINO ide
#include < Stepper.h >
CONST int encoderPinA = 2; höger
CONST int encoderPinB = 3; vänster
CONST int encButton = 4; Encoder tryckknapp
int encoderPos = 0; räknaren
unsigned int lastReportedPos = 1; ändra
statisk boolean roterande = false; Debounce
booleska A_set = false;
booleska B_set = false;
CONST int stepsPerRevolution = 200.
Stepper myStepper (stepsPerRevolution, 8, 9, 10, 11); h-bridge pins
void setup() {
myStepper.setSpeed(60);
pinMode (encoderPinA, INPUT_PULLUP); att aktivera pullups
pinMode (encoderPinB, INPUT_PULLUP);
pinMode (encButton, INPUT_PULLUP);
attachInterrupt (0, doEncoderA, förändring); stift 2
attachInterrupt (1, doEncoderB, förändring); stift 3
Serial.BEGIN(9600);
}
void loop() {
roterande = sant; återställa debouncer
om (lastReportedPos! = encoderPos) {
Serial.println(encoderPos);
lastReportedPos = encoderPos;
om (digitalRead(encButton) == låg)
{
encoderPos = (encoderPos * 100); ändra 100 till hur många steg
} //you vill genom att röra sig när
myStepper.step(encoderPos); knappen trycks
encoderPos = 0;
}
}
void doEncoderA() {
Debounce
om (roterande) fördröjning (1). vänta lite tills den studsande görs
Testa övergång
om (digitalRead(encoderPinA)! = A_set) {/ / Dämpningstid gång
A_set =! A_set;
justera counter + om A leder B
om (A_set & &! B_set)
encoderPos + = 1; ändra 1 till åtgärder som ska vidtas när kodaren vände
roterande = false; Inga fler debouncing tills loop() träffar igen
}
}
Avbryta på B ändra tillstånd
void doEncoderB() {
om (roterande) fördröjning (1).
om (digitalRead(encoderPinB)! = B_set) {
B_set =! B_set;
justera counter - 1 om B leder A
om (B_set & &! A_set)
encoderPos-= 1; ändra 1 till åtgärder som ska vidtas när kodaren vände
roterande = false;
}
}
Nu när du har allt kör Vrid rotary encoder, om nummerlistan visar motsatt sätt än vad du vill bara byta 2 kablar på ena sidan av stegmotor (endast en sida inte båda).
Nästa Tryck på knappen ner och vrid encoder, är ska vända 100 steg i riktningen du vände kodaren. Om du vill ändra hur många steg stepper rör sig när du slår kodaren bara titta på koden, dess kommenterade på 3 ställen måste du ändra det. När du ändrar värdet tryckknapp minns det multipliceras med normala steg värdet.
Jag hoppas denna tutorial var hjälpsam, om du har några frågor eller kommentarer vänligen lämna dem och sjuk återkomma till dig ASAP...