#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char buttons[ROWS][COLS] = {
{'1', '2', '3', '4'},
{'5', '6', '7', '8'},
{'9', 'A', 'B', 'C'},
{'D', 'E', 'F', 'G'},
};
byte rowPins[ROWS] = {3, 2, A0, A1};
byte colPins[COLS] = {A2, A3, A4, A5};
Keypad customKeypad = Keypad(makeKeymap(buttons), rowPins, colPins, ROWS, COLS);
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // Create array for LED pins
int ledDelay = 100; // sets initial delay between led changes
int currentLED = 0; //not sure what this is here for. might be dead code
void setup() {
Serial.begin(9600);
for (int x = 0; x < 10; x++) { // set all pins to output
pinMode(ledPin[x], OUTPUT);
}
}
void mode1() {
for (int x = 0; x < 10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[0], HIGH);
delay(ledDelay);
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], HIGH);
delay(ledDelay);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], HIGH);
delay(ledDelay);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], HIGH);
delay(ledDelay);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], HIGH);
delay(ledDelay);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], HIGH);
delay(ledDelay);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], HIGH);
delay(ledDelay);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], HIGH);
delay(ledDelay);
digitalWrite(ledPin[7], LOW);
digitalWrite(ledPin[8], HIGH);
delay(ledDelay);
digitalWrite(ledPin[8], LOW);
digitalWrite(ledPin[9], HIGH);
delay(ledDelay);
digitalWrite(ledPin[9], LOW);
}
void mode2() {
for (int x = 0; x < 10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[0], HIGH);
delay(ledDelay);
digitalWrite(ledPin[1], HIGH);
delay(ledDelay);
digitalWrite(ledPin[2], HIGH);
delay(ledDelay);
digitalWrite(ledPin[3], HIGH);
delay(ledDelay);
digitalWrite(ledPin[4], HIGH);
delay(ledDelay);
digitalWrite(ledPin[5], HIGH);
delay(ledDelay);
digitalWrite(ledPin[6], HIGH);
delay(ledDelay);
digitalWrite(ledPin[7], HIGH);
delay(ledDelay);
digitalWrite(ledPin[8], HIGH);
delay(ledDelay);
digitalWrite(ledPin[9], HIGH);
delay(ledDelay);
for (int x = 0; x < 10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
}
void mode3() {
for (int x = 0; x < 10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[0], HIGH);
digitalWrite(ledPin[1], HIGH);
digitalWrite(ledPin[4], HIGH);
digitalWrite(ledPin[5], HIGH);
digitalWrite(ledPin[8], HIGH);
digitalWrite(ledPin[9], HIGH);
delay(ledDelay * 10);
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[8], LOW);
digitalWrite(ledPin[9], LOW);
digitalWrite(ledPin[2], HIGH);
digitalWrite(ledPin[3], HIGH);
digitalWrite(ledPin[6], HIGH);
digitalWrite(ledPin[7], HIGH);
delay(ledDelay * 10);
for (int x = 0; x < 10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
}
void mode4() {
for (int x = 0; x < 10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[4], HIGH);
digitalWrite(ledPin[5], HIGH);
delay(ledDelay);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[3], HIGH);
digitalWrite(ledPin[6], HIGH);
delay(ledDelay);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[2], HIGH);
digitalWrite(ledPin[7], HIGH);
delay(ledDelay);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[7], LOW);
digitalWrite(ledPin[1], HIGH);
digitalWrite(ledPin[8], HIGH);
delay(ledDelay);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[8], LOW);
digitalWrite(ledPin[0], HIGH);
digitalWrite(ledPin[9], HIGH);
delay(ledDelay);
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[9], LOW);
delay(ledDelay);
for (int x = 0; x < 10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
}
void loop() {
char customKey = customKeypad.getKey();
if (customKey) {
Serial.println(customKey);
}
if (customKey == '1') {
Serial.println(customKey);
mode1();
}
if (customKey == '2') {
Serial.println(customKey);
mode2();
}
if (customKey == '3') {
Serial.println(customKey);
mode3();
}
if (customKey == '4') {
Serial.println(customKey);
mode4();
}
if (customKey == 'F') {
ledDelay + 100;
Serial.println(customKey);
}
if (customKey == 'G') {
ledDelay - 100;
Serial.println(customKey);
}
if (customKey == 'E') {
ledDelay == 100;
Serial.println(customKey);
}
}