#include <Encoder.h>
long oldPosition1 = -999;
long oldPosition2 = -999;
long oldPosition3 = -999;
long oldPosition4 = -999;
long oldPosition5 = -999;
long oldPosition6 = -999;
long oldPosition7 = -999;
long oldPosition8 = -999;
long oldPosition9 = -999;
//Encoder pin A and B Callouts
Encoder myEnc1(22, 23);
Encoder myEnc2(24, 25);
Encoder myEnc3(26, 27);
Encoder myEnc4(28, 29);
Encoder myEnc5(30, 31);
Encoder myEnc6(32, 33);
Encoder myEnc7(34, 35);
Encoder myEnc8(36, 37);
Encoder myEnc9(38, 39);
// avoid using pins with LEDs attached
void setup() {
Serial.begin(9600);
Serial.println("Basic Encoder Test:");
// Initialize Joystick Library
Joystick.begin();
//Button Pin Callouts
pinMode(0, INPUT_PULLUP);
pinMode(1, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
pinMode(15, INPUT_PULLUP);
pinMode(16, INPUT_PULLUP);
}
void loop() {
//Joystick Analog Pin Callout for Clutch Paddles
Joystick.sliderRight(analogRead(A22));
Joystick.sliderLeft(analogRead(A21));
//Digital Inputs to Button setup
//Button 1
if(digitalRead(0) == LOW)
{
Joystick.button(1,1);
}
else
{
Joystick.button(1,0);
}
//Button 2
if(digitalRead(1) == LOW)
{
Joystick.button(2,1);
}
else
{
Joystick.button(2,0);
}
//Button 3
if(digitalRead(2) == LOW)
{
Joystick.button(3,1);
}
else
{
Joystick.button(3,0);
}
//Button 4
if(digitalRead(3) == LOW)
{
Joystick.button(4,1);
}
else
{
Joystick.button(4,0);
}
//Button 5
if(digitalRead(4) == LOW)
{
Joystick.button(5,1);
}
else
{
Joystick.button(5,0);
}
//Button 6
if(digitalRead(5) == LOW)
{
Joystick.button(6,1);
}
else
{
Joystick.button(6,0);
}
//Button 7
if(digitalRead(6) == LOW)
{
Joystick.button(7,1);
}
else
{
Joystick.button(7,0);
}
//Button 8
if(digitalRead(7) == LOW)
{
Joystick.button(8,1);
}
else
{
Joystick.button(8,0);
}
//Button 9
if(digitalRead(8) == LOW)
{
Joystick.button(9,1);
}
else
{
Joystick.button(9,0);
}
//Button 10
if(digitalRead(9) == LOW)
{
Joystick.button(10,1);
}
else
{
Joystick.button(10,0);
}
//Button 11
if(digitalRead(10) == LOW)
{
Joystick.button(11,1);
}
else
{
Joystick.button(11,0);
}
//Button 12
if(digitalRead(11) == LOW)
{
Joystick.button(12,1);
}
else
{
Joystick.button(12,0);
}
//Button 13
if(digitalRead(12) == LOW)
{
Joystick.button(13,1);
}
else
{
Joystick.button(13,0);
}
//Button 14
if(digitalRead(13) == LOW)
{
Joystick.button(14,1);
}
else
{
Joystick.button(14,0);
}
//Button ? 15/33
if(digitalRead(14) == LOW)
{
Joystick.button(33,1);
}
else
{
Joystick.button(33,0);
}
//Button ? 16/34
if(digitalRead(15) == LOW)
{
Joystick.button(34,1);
}
else
{
Joystick.button(34,0);
}
//Button ? 17/35
if(digitalRead(16) == LOW)
{
Joystick.button(35,1);
}
else
{
Joystick.button(35,0);
}
/////////////////////////////////////
//Encoder 1
long newPosition1 = myEnc1.read();
if (newPosition1 > oldPosition1) {
oldPosition1 = newPosition1;
Serial.println(newPosition1);
Joystick.button(15,1);
Joystick.button(16,0);
}
if (newPosition1 < oldPosition1) {
oldPosition1 = newPosition1;
Serial.println(newPosition1);
Joystick.button(15,0);
Joystick.button(16,1);
}
else
Joystick.button(15,0);
Joystick.button(16,0);
delay(5);
//Encoder 2
long newPosition2 = myEnc2.read();
if (newPosition2 > oldPosition2) {
oldPosition2 = newPosition2;
Serial.println(newPosition2);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition2 < oldPosition2) {
oldPosition2 = newPosition2;
Serial.println(newPosition2);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
//Encoder 3
long newPosition3 = myEnc3.read();
if (newPosition3 > oldPosition3) {
oldPosition3 = newPosition3;
Serial.println(newPosition3);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition3 < oldPosition3) {
oldPosition3 = newPosition3;
Serial.println(newPosition3);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
//Encoder 4
long newPosition4 = myEnc4.read();
if (newPosition4 > oldPosition4) {
oldPosition4 = newPosition4;
Serial.println(newPosition4);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition4 < oldPosition4) {
oldPosition4 = newPosition4;
Serial.println(newPosition4);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
//Encoder 5
long newPosition5 = myEnc5.read();
if (newPosition5 > oldPosition5) {
oldPosition5 = newPosition5;
Serial.println(newPosition5);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition5 < oldPosition5) {
oldPosition5 = newPosition5;
Serial.println(newPosition5);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
//Encoder 6
long newPosition6 = myEnc6.read();
if (newPosition6 > oldPosition6) {
oldPosition6 = newPosition6;
Serial.println(newPosition6);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition6 < oldPosition6) {
oldPosition6 = newPosition6;
Serial.println(newPosition6);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
//Encoder 7
long newPosition7 = myEnc7.read();
if (newPosition7 > oldPosition7) {
oldPosition7 = newPosition7;
Serial.println(newPosition7);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition7 < oldPosition7) {
oldPosition7 = newPosition7;
Serial.println(newPosition7);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
//Encoder 8
long newPosition8 = myEnc8.read();
if (newPosition8 > oldPosition8) {
oldPosition8 = newPosition8;
Serial.println(newPosition8);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition8 < oldPosition8) {
oldPosition8 = newPosition8;
Serial.println(newPosition8);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
//Encoder 9
long newPosition9 = myEnc9.read();
if (newPosition9 > oldPosition9) {
oldPosition9 = newPosition9;
Serial.println(newPosition9);
Joystick.button(17,1);
Joystick.button(18,0);
}
if (newPosition9 < oldPosition9) {
oldPosition9 = newPosition9;
Serial.println(newPosition9);
Joystick.button(17,0);
Joystick.button(18,1);
}
else
Joystick.button(17,0);
Joystick.button(18,0);
delay(5);
}