#include <Keypad.h>
#include <LedControl.h>
// Dot Matrix bağlantı pinleri
const int DIN_PIN = 11;
const int CLK_PIN = 13;
const int CS_PIN = 10;
// Keypad bağlantı pinleri ve tuş dizilimi
const byte ROWS = 4; // Keypad'in satır sayısı
const byte COLS = 4; // Keypad'in sütun sayısı
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; // Keypad'in satır pinleri
byte colPins[COLS] = {5, 4, 3, 2}; // Keypad'in sütun pinleri
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LedControl lc = LedControl(DIN_PIN, CLK_PIN, CS_PIN, 1); // Dot Matrix nesnesi
int pixelX = 0; // Pikselin x konumu
int pixelY = 0; // Pikselin y konumu
void setup() {
lc.shutdown(0, false); // Dot Matrix aktifleştir
lc.setIntensity(0, 8); // Parlaklık seviyesi (0-15 arası değerler)
lc.clearDisplay(0); // Dot Matrix'i temizle
}
void loop() {
char key = keypad.getKey(); // Keypad'den tuşa basıldığında oku
if (key) {
// Keypad tuşlarına göre pikselin konumunu güncelle
switch (key) {
case '2':
if (pixelY > 0) pixelY--; // Yukarı hareket
break;
case '8':
if (pixelY < 7) pixelY++; // Aşağı hareket
break;
case '4':
if (pixelX > 0) pixelX--; // Sola hareket
break;
case '6':
if (pixelX < 7) pixelX++; // Sağa hareket
break;
case '#':
pixelX = 0; // Sol üst köşeye dön
pixelY = 0;
break;
case '*':
pixelX = 7; // Sağ üst köşeye dön
pixelY = 0;
break;
case 'A':
pixelX = 0; // Sol alt köşeye dön
pixelY = 7;
break;
case 'C':
pixelX = 7; // Sağ alt köşeye dön
pixelY = 7;
break;
default:
break;
}
}
// Dot Matrix'e pikseli göster
lc.clearDisplay(0);
lc.setLed(0, pixelY, pixelX, true);
delay(100);
}