Go Down

Topic: Rotary Encoder, A different approach using one analog Pin (Read 1 time) previous topic - next topic


Jul 14, 2013, 05:11 pm Last Edit: Jul 16, 2013, 11:14 pm by billmax3 Reason: 1
I connected a rotary encoders grey code Com (center pin) to A0, grey code pin 1 to arduino GRD and a 64k resistor to encoders gray code pins 1 and 2.
then I enabled A0 internal pullup resistor and wrote a code to determine whether the encoder turned left or write and used timer one to check for input changes It seems to be working well
this is the code I used it requires timerone library http://playground.arduino.cc/code/timer1

#include <TimerOne.h>
boolean gotHigh=false; //Used to check if it went to High value
boolean gotLow=false; //Used to Check if it went to Low value
boolean valueHigh=false; //Used to check if the last value is high or low to determine the rotation
boolean hasTurned=false;

void setup()
pinMode(A0, INPUT_PULLUP); //Set the internal pullup resistor
Timer1.initialize(1000);  //Set the interval of the checks
Timer1.attachInterrupt( timerIsr ); // attach the service routine here

void loop()
 // Your code here


void timerIsr(){
int sensorValue = analogRead(A0);    
 if (sensorValue<950){
   if (sensorValue>400){valueHigh=true;
   else {
 else if (hasTurned==true){
   if ((valueHigh==true) && (gotLow==true)){
     Serial.println("Left"); //you code here for left turns eg. Myval--
   else if (gotHigh==true){
     Serial.println("Right");//you code here for left turns eg. Myval++


Cool.  I'm playing with a pec11 right now.  I saw a youtube article about wiring it up with a debounce circuit and it was not working.  I'm using a 328 so my inputs are limited.  I will be watching your work here and trying something similar my self.



Here is a picture


Neat! You made a 2-bit digital-to-analog converter.
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter


Neat! You made a 2-bit digital-to-analog converter comparator..
Two analog values 3V or zero.. assuming a 20K pull-up resistor.

--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131