#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5};
byte colPins[COLS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Ignition & Engine Start
const int ignitionPin = 10;
const int engineStartPin = 11;
// Encoder 1
const int enc1A = 12, enc1B = 13, enc1SW = A0;
// Encoder 2
const int enc2A = A1, enc2B = A2, enc2SW = A3;
// Encoder 3
const int enc3A = A4, enc3B = A5, enc3SW = D0;
void setup() {
Serial.begin(9600);
pinMode(ignitionPin, INPUT_PULLUP);
pinMode(engineStartPin, INPUT_PULLUP);
pinMode(enc1SW, INPUT_PULLUP);
pinMode(enc2SW, INPUT_PULLUP);
pinMode(enc3SW, INPUT_PULLUP);
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.print("Keypad: ");
Serial.println(key);
}
if (digitalRead(ignitionPin) == LOW) {
Serial.println("Ignition ON");
}
if (digitalRead(engineStartPin) == LOW) {
Serial.println("Engine Start");
}
if (digitalRead(enc1SW) == LOW) Serial.println("Encoder 1 SW");
if (digitalRead(enc2SW) == LOW) Serial.println("Encoder 2 SW");
if (digitalRead(enc3SW) == LOW) Serial.println("Encoder 3 SW");
delay(50); // debounce base
}