$product_tour_enabled = et_builder_is_product_tour_enabled(); $page_container_style = $product_tour_enabled ? ' style="padding-top: 0px;"' : ''; ?>

Rotary Ecoder

R17.00 inc VAT

9 in stock

Purchase this product now and earn 15 Bot Points!
SKU: rot-297 Category:


A rotary encoder is an electromechanical device that converts the angular position or motion of a shaft or axle to an analog or digital code. Rotary encoders are usually placed at the side which is perpendicular to the shaft. Rotary encoders act as sensors for detecting angle, speed, length, position and acceleration in the automation field.

The module can count by rotation the pulses output both clockwise and counterclockwise. Different from the potentiometer, the counting is unrestricted. It can be restored to the original state by the button on the module, i.e. counting from 0.


It is widely applied in fields such as steel, harbor machinery, hoisting machinery, pressure machinery, glass machinery, packaging machinery, etc

Example Sketch & Diagram


#define clkPin 2
#define dtPin 3
#define swPin 4
int encoderVal = 0;

void setup(){
pinMode(clkPin, INPUT);
pinMode(dtPin, INPUT);
pinMode(swPin, INPUT);
digitalWrite(swPin, HIGH);

void loop(){
int change = getEncoderTurn();
encoderVal = encoderVal + change;
if(digitalRead(swPin) == LOW)
encoderVal = 0;
int getEncoderTurn(void)
static int oldA = HIGH;
static int oldB = HIGH;
int result = 0;
int newA = digitalRead(clkPin);
int newB = digitalRead(dtPin);
if (newA != oldA || newB != oldB)
if (oldA == HIGH && newA == LOW)
result = (oldB * 2 - 1);
oldA = newA;
oldB = newB;
return result;


There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.