#include <Keypad.h>
#include <FastLED.h>
#define ROWS 4
#define COLS 10
#define NUM_LEDS ROWS*COLS
#define DATA_PIN 12
CRGB leds[NUM_LEDS];
bool stan[NUM_LEDS] = { false };
byte hexaKeys[ROWS][COLS] = {
{40, 36, 32, 28, 24, 20, 16, 12, 8, 4},
{39, 35, 31, 27, 23, 19, 15, 11, 7, 3},
{38, 34, 30, 26, 22, 18, 14, 10, 6, 2},
{37, 33, 29, 25, 21, 17, 13, 9, 5, 1}
};
byte rowPins[ROWS] = {A0, A1, A2, A3};
byte colPins[COLS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
Keypad klawiatura = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
Serial.begin(9600);
}
void loop(){
signed char id = klawiatura.getKey() - 1;
if (id >= 0){
stan[id] = !stan[id];
leds[id] = (stan[id] == true ? CRGB::White : CRGB::Black);
FastLED.show();
char buff[20] = {0};
snprintf(buff, 20, "id: %i [%s]", id + 1, stan[id] == true ? "on" : "off");
Serial.println(buff);
delay(50);
}
}