Stap 2: De code
Nu dat je kopieert het circuit gebouwd in de ARDUINO ide u de code hieronder en in het verleden het
#include < Stepper.h >
Const int encoderPinA = 2; rechts
Const int encoderPinB = 3; links
Const int encButton = 4; encoder drukknop
int encoderPos = 0; teller
unsigned int lastReportedPos = 1; wijzigen
statische Booleaanse roterende = false; ontdendering
Boole A_set = false;
Boole B_set = false;
Const int stepsPerRevolution = 200;
Stepper-myStepper (stepsPerRevolution, 8, 9, 10, 11); h-brug pinnen
VOID Setup {}
myStepper.setSpeed(60);
pinMode (encoderPinA, INPUT_PULLUP); pullups inschakelen
pinMode (encoderPinB, INPUT_PULLUP);
pinMode (encButton, INPUT_PULLUP);
attachInterrupt (0, doEncoderA, verandering); pin 2
attachInterrupt (1, doEncoderB, verandering); pin 3
Serial.begin(9600);
}
void loop {}
roterende = true; Reset de debouncer
Als (lastReportedPos! = encoderPos) {}
Serial.println(encoderPos);
lastReportedPos = encoderPos;
Als (digitalRead(encButton) == laag)
{
encoderPos = (encoderPos * 100); de 100 omzetten in hoeveel stappen
} //you willen de stepper te verplaatsen wanneer
myStepper.step(encoderPos); de knop wordt ingedrukt
encoderPos = 0;
}
}
ongeldig doEncoderA() {}
ontdendering
Als (roterende) vertraging (1); een beetje wachten totdat het stuiteren is gedaan
Testen van de overgang
Als (digitalRead(encoderPinA)! = A_set) {/ / nogmaals debounce
A_set =! A_set;
teller + als A B leidt aanpassen
Als (A_set & &! B_set)
encoderPos += 1; de 1 omzetten in stappen te nemen toen encoder
roterende = false; niet meer debouncing tot loop weer raakt
}
}
Onderbreken op B staat wijzigen
ongeldig doEncoderB() {}
Als (roterende) vertraging (1);
Als (digitalRead(encoderPinB)! = B_set) {}
B_set =! B_set;
aanpassen teller - 1 als B A leidt
Als (B_set & &! A_set)
encoderPos-= 1; de 1 omzetten in stappen te nemen toen encoder
roterende = false;
}
}
Nu dat je alles met schakelen van de roterende encoder, als de stepper de tegenovergestelde manier draait dan wat je gewoon wilt schakelen 2 draden aan de ene kant van de stappenmotor (slechts één kant niet beide).
Vervolgens druk op de knop ingedrukt en draai het coderingsprogramma, Is 100 stappen moeten zetten in de richting u het coderingsprogramma hebt ingeschakeld. Als u wijzigen hoe vele stappen de stepper wordt verplaatst wilt wanneer u het coderingsprogramma gewoon kijken naar de code, haar commentaar op de 3 plaatsen moet u om het te veranderen. Wanneer u wijzigt de waarde van de drukknop herinner me het zal worden vermenigvuldigd met de waarde van de normale stappen.
Ik hoop dat deze tutorial was nuttig, als u nog vragen of opmerkingen kunt u laat ze ziek terug naar u te krijgen ASAP...