Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pinMode(EncPin1, INPUT_PULLUP);
- pinMode(EncPin2, INPUT_PULLUP);
- attachInterrupt(digitalPinToInterrupt(EncPin1), Encoder1, FALLING);
- attachInterrupt(digitalPinToInterrupt(EncPin2), Encoder2, FALLING);
- void Encoder()
- {
- bool Enc1Val = digitalRead(EncPin1);
- bool Enc2Val = digitalRead(EncPin2);
- static bool Enc1Triggered = false;
- static bool Enc2Triggered = false;
- if (Enc1Val == true && Enc2Triggered == false)
- {
- Enc1Triggered = true;
- }
- else if (Enc1Val == true && Enc2Triggered == true)
- {
- EncoderCounter++;
- Enc2Triggered = false;
- }
- else if (Enc2Val == true && Enc1Triggered == false)
- {
- Enc2Triggered = true;
- }
- else if (Enc2Val == true && Enc1Triggered == true)
- {
- EncoderCounter--;
- Enc1Triggered = false;
- }
- else
- {
- }
- }
- /////////////////////////////////////////////////////////////
- Second try, each sensor gets its own function so they're handled quicker
- void Encoder1()
- {
- if (Enc2Triggered == true)
- {
- EncoderCounter++;
- Enc2Triggered = false;
- }
- else
- {
- Enc1Triggered = true;
- }
- }
- void Encoder2()
- {
- if (Enc1Triggered == true)
- {
- EncoderCounter--;
- Enc1Triggered = false;
- }
- else
- {
- Enc2Triggered = true;
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////////////
- This was just a test to see if the Hall sensors both work and if they trigger equally
- void Encoder1()
- {
- EncoderCounter++;
- }
- void Encoder2()
- {
- EncoderCounter--;
- }
Advertisement
Add Comment
Please, Sign In to add comment