#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <AccelStepper.h>
#include <Keypad.h>
#include <IRremote.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int homeSwitchPin = 12; // Pin for the homing limit switch
#define PIN_RECEIVER 13 // Signal Pin of IR receiver
IRrecv receiver(PIN_RECEIVER);
/* Keypad setup */
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {9, 8, 7, 6};
byte colPins[KEYPAD_COLS] = {5, 4, 3, 2};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '=', 'D'}
};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);
AccelStepper stepper(AccelStepper::DRIVER, 10, 11); // Define stepper motor driver pins for STEP and DIR
int stepPosition = 0; // Target position for the stepper motor
String inputString = ""; // String to hold the input from the keypad
uint16_t charSet[8] = {0}; // Array to store stepper positions
int charSetSize = sizeof(charSet) / sizeof(charSet[0]);
int currentCharIndex = 0;
int displayIndex = 0; // Index for displaying charSet values
byte turkce_karakterler[8][8] = {
{ B00000, B00000, B00100, B00100, B00100, B00100, B00100, B00000 }, // ı
{ B10000, B10000, B10110, B11001, B10001, B10001, B10001, B00000 }, // ğ
{ B01010, B00000,B00000, B10001, B10001, B10001, B01110, B00000 }, // ü
{ B00000, B00000, B11111, B00001, B01111, B10001, B01111, B00000 }, // ş
{ B01010, B00000, B01110, B10001, B10001, B10001, B01110, B00000 }, // ö
{ B00000, B00000, B01110, B10000, B10000, B10000, B01110, B00000 }, // ç
{ B01110, B10001, B10000, B11100, B10000, B10001, B01110, B00000 }, // İ
{ B00000, B00000, B11111, B00001, B01111, B10001, B01111, B00000 } // Ş (büyük harf)
};