#include <EncoderStepCounter.h>
const int RPIN1 = 5;
const int RPIN2 = 6;
const int BTPIN = 4;
int BTPINstate = LOW;
int BTPINdelay = 5;
int fx[5] = {0,11,10,9,8};
int counter=0;
EncoderStepCounter encoder(RPIN1, RPIN2);
int oldPosition = 0;
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(BTPIN, INPUT_PULLUP);
Serial.begin(9600);
encoder.begin();
}
void loop() {
encoder.tick();
int position = encoder.getPosition();
if (position > oldPosition) {digitalWrite((fx[position]), HIGH);counter++;}
if (position < oldPosition) {digitalWrite((fx[counter]), LOW);counter--;}
if (position <0) {encoder.setPosition(0);}
if (position > 4) {encoder.setPosition(4);}
oldPosition = counter;
int BTPINact = digitalRead(BTPIN);
if (BTPINact != BTPINstate) {
delay(BTPINdelay);
if (BTPINact == LOW) {
Serial.print("Actual position: ");
Serial.println(position);
}
}
BTPINstate = BTPINact;
}