#include <Keypad.h>
#include <Adafruit_NeoPixel.h>
#define LED_PIN 10
#define LED_COUNT 16
Adafruit_NeoPixel ring(LED_COUNT, LED_PIN, NEO_RGBW + NEO_KHZ800);
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
uint8_t colPins[COLS] = { 4,3,2,1 }; // Pins connected to C1, C2, C3, C4
uint8_t rowPins[ROWS] = { 8,7,6,5 }; // Pins connected to R1, R2, R3, R4
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
ring.begin();
ring.show();
ring.setBrightness(50);
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
Serial.println(key);
}
if(key == '1') {
for(int a=0; a<=3; a++){
digitalWrite(12, HIGH);
delay(100);
digitalWrite(12, LOW);
delay(100);
}
}
if(key == '2'){
tone(11, 1200);
delay(200);
tone(11, 0);
delay(200);
}
if(key == '3'){
for(int i = 0; i < ring.numPixels(); i++){
ring.setPixelColor(i, random(255), random(255), random(255), 0);
ring.show();
delay(50);
}
for(int i = ring.numPixels()-1; i >= 0; i--){
ring.setPixelColor(i, 0, 0, 0, 0);
ring.show();
delay(50);
}
}
}