Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //http://domoticx.com/arduino-rotary-encoder-keyes-ky-040/
- int clock = 2; // Define encoder pin A
- int data = 3; // Define encoder pin B
- int count = 0; // pre-init the count to zero
- int c = LOW; // pre-init the state of pin A low
- int cLast = LOW; // and make its last val the same - ie no change
- int d = LOW; // and make the data val low as well
- void setup() {
- pinMode (clock,INPUT); // setup the pins as inputs
- pinMode (data,INPUT);
- Serial.begin (9600); // and give some serial debugging
- }
- void loop() {
- c = digitalRead(clock); // read pin A as clock
- d = digitalRead(data); // read pin B as data
- if (c != cLast) { // clock pin has changed value... now we can do stuff
- d = c^d; // work out direction using an XOR
- if ( d ) {
- count--; // non-zero is Anti-clockwise
- }else{
- count++; // zero is therefore anti-clockwise
- }
- Serial.print ("Jog:: count:");
- Serial.println(count);
- cLast = c; // store current clock state for next pass
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement