#include <Adafruit_NeoPixel.h>
#include <Keypad.h>
#define PIN 6
#define NUMPIXELS 8
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
// Keypad tanımı
const byte ROWS = 4; // 4 satır
const byte COLS = 4; // 4 sütun
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {7, 8, 9, 10}; // R1, R2, R3, R4 pinleri
byte colPins[COLS] = {11, 12, 13, A0}; // C1, C2, C3, C4 pinleri
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
// Neopixel değişkenleri
int selectedLed = 0; // Seçili LED'in indeksi
int brightness = 50; // Seçili LED'in başlangıç parlaklığı
int red = 0, green = 0, blue = 0; // RGB değerleri (isteğe bağlı renk kontrolü için)
void setup() {
Serial.begin(9600);
pixels.begin();
pixels.show();
// Başlangıçta ilk LED'i seçili göster (parlaklıkta)
pixels.setPixelColor(selectedLed, pixels.Color(brightness, brightness, brightness));
pixels.show();
Serial.println("Keypad ile Neopixel Kontrol");
Serial.println("1-8: LED Secimi");
Serial.println("A: Parlaklik Arttir");
Serial.println("B: Parlaklik Azalt");
Serial.println("C: Tum LED'leri Kapat");
Serial.println("D: Tum LED'leri Ac");
}
void loop() {
char customKey = customKeypad.getKey(); // Tuş basımını oku
if (customKey) { // Bir tuşa basıldıysa
Serial.print("Basilan Tus: ");
Serial.println(customKey);
if (customKey >= '1' && customKey <= '8') { // LED seçimi
// Önceki seçili LED'i kapat veya varsayılan parlaklığa getir
pixels.setPixelColor(selectedLed, 0); // Kapat
pixels.show();
selectedLed = customKey - '1'; // '1' -> 0, '2' -> 1 vb.
pixels.setPixelColor(selectedLed, pixels.Color(brightness, brightness, brightness));
pixels.show();
Serial.print("Secilen LED: ");
Serial.println(selectedLed + 1);
} else if (customKey == 'A') { // Parlaklığı arttır
brightness += 25;
if (brightness > 255) brightness = 255;
pixels.setPixelColor(selectedLed, pixels.Color(brightness, brightness, brightness));
pixels.show();
Serial.print("Parlaklik: ");
Serial.println(brightness);
} else if (customKey == 'B') { // Parlaklığı azalt
brightness -= 25;
if (brightness < 0) brightness = 0;
pixels.setPixelColor(selectedLed, pixels.Color(brightness, brightness, brightness));
pixels.show();
Serial.print("Parlaklik: ");
Serial.println(brightness);
} else if (customKey == 'C') { // Tüm LED'leri kapat
pixels.clear();
pixels.show();
Serial.println("Tum LED'ler Kapali");
brightness = 0; // Parlakligi da sifirla
} else if (customKey == 'D') { // Tüm LED'leri aç (varsayılan parlaklıkta)
brightness = 100; // Varsayilan bir parlaklik atayalim
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(brightness, brightness, brightness));
}
pixels.show();
Serial.println("Tum LED'ler Acik");
}
}
}