Use Arduino for Wheel Encoder Counter

Program Arduino

Here is the program which you will upload to your Arduino. The program has 2 interrupt counters for the pins connected to the encoders. The main program will loop until the letter 'a' i received from the EZ-B over the UART. Once the 'a' is received, the Arduino will transmit 2 bytes, which is are the two encoder values, respectively. Once the data is transmitted, the count of the 2 bytes is reset.

Resetting the values on each query will make it much easier in ARC to identify what wheel is spinning quicker/slower.

Arduino Code:


// just reading the encoder, nothing else.

int encoderValue_A = 0;
int encoderValue_B = 0;

void setup() {


pinMode(2, INPUT);
pinMode(3, INPUT);

attachInterrupt(digitalPinToInterrupt(2), countA, FALLING);
attachInterrupt(digitalPinToInterrupt(3), countB, FALLING);

void loop() {

// if there is data to read, read it
if (Serial.available() > 0) {

// read the incoming data from the ezb
int incomingByte =;

// command 'a' means transmit the current values and reset the counters
if (incomingByte == 'a') {

// send the values

// reset the values
encoderValue_A = 0;
encoderValue_B = 0;

void countA() {


void countB() {



Upgrade to ARC Pro

Experience early access to the latest features and updates. You'll have everything that is needed to unleash your robot's potential.