74 lines
1.9 KiB
C++
74 lines
1.9 KiB
C++
#define encoder0PinA 2
|
|
#define encoder0PinB 4
|
|
|
|
#define encoder1PinA 3
|
|
#define encoder1PinB 5
|
|
|
|
void setup() {
|
|
pinMode(encoder0PinA, INPUT);
|
|
digitalWrite(encoder0PinA, HIGH); // turn on pullup resistor
|
|
pinMode(encoder0PinB, INPUT);
|
|
digitalWrite(encoder0PinB, HIGH); // turn on pullup resistor
|
|
pinMode(encoder1PinA, INPUT);
|
|
digitalWrite(encoder1PinA, HIGH); // turn on pullup resistor
|
|
pinMode(encoder1PinB, INPUT);
|
|
digitalWrite(encoder1PinB, HIGH); // turn on pullup resistor
|
|
|
|
attachInterrupt(0, doEncoder0, CHANGE);
|
|
attachInterrupt(1, doEncoder1, CHANGE);
|
|
|
|
Serial.begin(9600);
|
|
}
|
|
|
|
void doEncoder0() {
|
|
/* If pinA and pinB are both high or both low, it is spinning
|
|
* forward. If they're different, it's going backward.
|
|
*
|
|
* For more information on speeding up this process, see
|
|
* [Reference/PortManipulation], specifically the PIND register.
|
|
*/
|
|
if (digitalRead(encoder0PinA) == digitalRead(encoder0PinB)) {
|
|
rotary_encoder_jogwheel_right_inc();
|
|
} else {
|
|
rotary_encoder_jogwheel_right_dec();
|
|
}
|
|
}
|
|
|
|
void doEncoder1() {
|
|
/* If pinA and pinB are both high or both low, it is spinning
|
|
* forward. If they're different, it's going backward.
|
|
*
|
|
* For more information on speeding up this process, see
|
|
* [Reference/PortManipulation], specifically the PIND register.
|
|
*/
|
|
if (digitalRead(encoder1PinA) == digitalRead(encoder1PinB)) {
|
|
rotary_encoder_jogwheel_left_inc();
|
|
} else {
|
|
rotary_encoder_jogwheel_left_dec();
|
|
}
|
|
}
|
|
|
|
|
|
void loop() {
|
|
delay(1000);
|
|
Serial.println("sleep");
|
|
}
|
|
|
|
//left jogwheel
|
|
void rotary_encoder_jogwheel_left_inc() {
|
|
Serial.println("jogwheel_left_inc");
|
|
}
|
|
|
|
void rotary_encoder_jogwheel_left_dec() {
|
|
Serial.println("jogwheel_left_dec");
|
|
}
|
|
|
|
//right jogwheel
|
|
void rotary_encoder_jogwheel_right_inc() {
|
|
Serial.println("jogwheel_right_inc");
|
|
}
|
|
|
|
void rotary_encoder_jogwheel_right_dec() {
|
|
Serial.println("jogwheel_right_dec");
|
|
}
|