#include "HID-Project.h"
//#include <EEPROM.h>
#include <FastLED.h>
#define LED_PIN 1
#define NUM_LEDS 8
#define BRIGHTNESS 64
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
#define row0 A5//PF0 D19
#define row1 A4//PF1 D18
#define row2 A3//PF4 D17
#define col0 A2//PF5 D16 A2
#define col1 A1//PF6 D15 A1
#define col2 A0//PF7 D14 A0
#define col3 13//PF7 D14 A0
#define wait 10//delay us
bool flag0 = 0;
bool flag1 = 0;
bool flag3 = 0;
bool flag4 = 0;
bool flag5 = 0;
bool flag6 = 0;
bool flag7 = 0;
bool flag8 = 0;
bool flag9 = 0;
bool flag10 = 0;
bool flag11 = 0;
bool flag12 = 0;
uint8_t mode = 0;
/*
int K1 = 0;
int K2 = 0;
int K3 = 0;
int K4 = 0;
int K5 = 0;
int K6 = 0;
int K7 = 0;
int K8 = 0;
int K9 = 0;
int K10 = 0;
int K11 = 0;
int K12 = 0;
*/
/*ASCII
*/
char asci [30] = {
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
'.',
',',
'-',
'_',
'*'
};
/*MEDIA:
0 = SES KIS[WIN10-21H2-OK]
1 = SES AC [WIN10-21H2-OK]
2 = DURDUR/BASLAT [WIN10-21H2-OK]
3 = SUSTUR [WIN10-21H2-OK]
4 = KAYIT DIYOR AMA SADECE MEDYA GORSELI GELIYOR [WIN10-21H2- HALF OK]
5 = GERI SARMA DIYOR AMA HICBIRSEY YAPMIYOR [WIN10-21H2- NOT OK]
6 = SONRAKI PARCAYA GEC [WIN10-21H2-OK]
7 = ONCEKI PARCAYA GEC [WIN10-21H2-OK]
*/
uint32_t media_keys[8] = {
MEDIA_VOLUME_DOWN,//0
MEDIA_VOLUME_UP,//1
MEDIA_PLAY_PAUSE,//2
MEDIA_VOL_MUTE,//3
MEDIA_RECORD,//4
MEDIA_REWIND,//5
MEDIA_NEXT,//6
MEDIA_PREVIOUS//7
};
/*SISTEM:
0 = PC KAPAT
1 = PC UYU
2 = PC UYAN
3 = PARLAKLIK +
4 = PARLAKLIK -
5 = EKRAN KAYDI
*/
uint32_t sys_keys[6] = {
SYSTEM_POWER_DOWN,
SYSTEM_SLEEP,
SYSTEM_WAKE_UP,
CONSUMER_BRIGHTNESS_UP,
CONSUMER_BRIGHTNESS_DOWN,
CONSUMER_SCREENSAVER
};
void setup() {
pinMode(col0, INPUT_PULLUP);//PF7 D14
pinMode(col1, INPUT_PULLUP);//PF6 D15
pinMode(col2, INPUT_PULLUP);//PF5 D16
pinMode(col3, INPUT_PULLUP);//PC7 D13
pinMode(row0, OUTPUT);
pinMode(row1, OUTPUT);
pinMode(row2, OUTPUT);
Consumer.begin();
System.begin();
Keyboard.begin();
Serial.begin(9600);
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
}
String md = "";
String btn = "";
String islev = "";
String gorev = "";
String readString = "";
void pc_com() {
if (Serial.available() > 0) {
String c = Serial.readString();
readString += c;
/* DATA BUS = 'MOD BUTTON ISLEV'*/
/* 0.M.0.K1 */
md = readString.substring(0, 1);
islev = readString.substring(2, 3);
gorev = readString.substring(4, 5);
btn = readString.substring(6, 9);
Serial.print("MOD:");
Serial.println(md);
Serial.print("IS:");
Serial.println(islev);
Serial.print("GOREV:");
Serial.println(gorev);
Serial.print("BTN:");
Serial.println(btn);
delay(1);
readString = "";
}
}
void key0(uint8_t value = 0, uint8_t mod = 0) {
if (mod == 0) { //MEDYA MODU
switch (value) {
case 1://K1
Consumer.write(media_keys[0]);
break;
case 2://K2
Consumer.write(media_keys[1]);
break;
case 3://K3
Consumer.write(media_keys[2]);
break;
case 4://K4
Consumer.write(media_keys[3]);
break;
case 5://K5
Consumer.write(media_keys[4]);
break;
case 6://K6
Consumer.write(media_keys[5]);
break;
case 7://K7
Consumer.write(media_keys[6]);
break;
case 8://K8
Consumer.write(media_keys[7]);
break;
case 9://K9
break;
case 10://K10
break;
case 11://K11
break;
case 12://K12
Consumer.write(media_keys[0]);
break;
}
}
if (mod == 1) {//SİSTEM MODU
switch (value) {
case 1://K1
Consumer.write(sys_keys[3]);
break;
case 2://K2
Consumer.write(sys_keys[4]);
break;
case 3://K3
break;
case 4://K4
break;
case 5://K5
break;
case 6://K6
break;
case 7://K7
break;
case 8://K8
break;
case 9://K9
break;
case 10://K10
break;
case 11://K11
break;
}
}
}
void tara() {
//--------------K1-----------
digitalWrite(row0, LOW);
if (digitalRead(col0) == LOW && flag0 == 0) {
key0(1, mode);
flag0 = 1;
}
if (digitalRead(col0) == HIGH && flag0 == 1) {
flag0 = 0;
key0(0, mode);
}
digitalWrite(row0, HIGH);
delayMicroseconds(wait);
//--------------K1-----------
//--------------K2-----------
digitalWrite(row1, LOW);
if (digitalRead(col0) == LOW && flag1 == 0) {
key0(2, mode);
flag1 = 1;
}
if (digitalRead(col0) == HIGH && flag1 == 1) {
flag1 = 0;
key0(0, mode);
}
digitalWrite(row1, HIGH);
delayMicroseconds(wait);
//--------------K2-----------
//--------------K3-----------
digitalWrite(row2, LOW);
if (digitalRead(col0) == LOW && flag3 == 0) {
key0(3, mode);
flag3 = 1;
}
if (digitalRead(col0) == HIGH && flag3 == 1) {
flag3 = 0;
key0(0, mode);
}
digitalWrite(row2, HIGH);
delayMicroseconds(wait);
//--------------K3-----------
//--------------K4-----------
digitalWrite(row0, LOW);
if (digitalRead(col1) == LOW && flag4 == 0) {
key0(4, mode);
flag4 = 1;
}
if (digitalRead(col1) == HIGH && flag4 == 1) {
flag4 = 0;
key0(0, mode);
}
digitalWrite(row0, HIGH);
delayMicroseconds(wait);
//--------------K4-----------
//--------------K5-----------
digitalWrite(row1, LOW);
if (digitalRead(col1) == LOW && flag5 == 0) {
key0(5, mode);
flag5 = 1;
}
if (digitalRead(col1) == HIGH && flag5 == 1) {
flag5 = 0;
key0(0, mode);
}
digitalWrite(row1, HIGH);
delayMicroseconds(wait);
//--------------K5-----------
//--------------K6-----------
digitalWrite(row2, LOW);
if (digitalRead(col1) == LOW && flag6 == 0) {
key0(6, mode);
flag6 = 1;
}
if (digitalRead(col1) == HIGH && flag6 == 1) {
flag6 = 0;
key0(0, mode);
}
digitalWrite(row2, HIGH);
delayMicroseconds(wait);
//--------------K6-----------
//--------------K7-----------
digitalWrite(row0, LOW);
if (digitalRead(col2) == LOW && flag7 == 0) {
key0(7, mode);
flag7 = 1;
}
if (digitalRead(col2) == HIGH && flag7 == 1) {
flag7 = 0;
key0(0, mode);
}
digitalWrite(row0, HIGH);
delayMicroseconds(wait);
//--------------K7-----------
//--------------K8-----------
digitalWrite(row1, LOW);
if (digitalRead(col2) == LOW && flag8 == 0) {
key0(8, mode);
flag8 = 1;
}
if (digitalRead(col2) == HIGH && flag8 == 1) {
flag8 = 0;
key0(0, mode);
}
digitalWrite(row1, HIGH);
delayMicroseconds(wait);
//--------------K8-----------
//--------------K9-----------
digitalWrite(row2, LOW);
if (digitalRead(col2) == LOW && flag9 == 0) {
key0(9, mode);
flag9 = 1;
}
if (digitalRead(col2) == HIGH && flag9 == 1) {
flag9 = 0;
key0(0, mode);
}
digitalWrite(row2, HIGH);
delayMicroseconds(wait);
//--------------K9-----------
//--------------K10-----------
digitalWrite(row0, LOW);
if (digitalRead(col3) == LOW && flag10 == 0) {
key0(10, mode);
flag10 = 1;
}
if (digitalRead(col3) == HIGH && flag10 == 1) {
flag10 = 0;
key0(0, mode);
}
digitalWrite(row0, HIGH);
delayMicroseconds(wait);
//--------------K10-----------
//--------------K11-----------
digitalWrite(row1, LOW);
if (digitalRead(col3) == LOW && flag11 == 0) {
key0(11, mode);
flag11 = 1;
}
if (digitalRead(col3) == HIGH && flag11 == 1) {
flag11 = 0;
key0(0, mode);
}
digitalWrite(row1, HIGH);
delayMicroseconds(wait);
//--------------K11-----------
//--------------K12-----------
digitalWrite(row2, LOW);
if (digitalRead(col3) == LOW && flag12 == 0) {
mode++;
if (mode > 1) {
mode = 0;
}
key0(0, mode);
flag12 = 1;
}
if (digitalRead(col3) == HIGH && flag12 == 1) {
key0(0, mode);
flag12 = 0;
}
digitalWrite(row2, HIGH);
delayMicroseconds(wait);
//--------------K12-----------
}
void led(int _mod = 0) {
if (modss == 0) {
FastLED.showColor(CRGB::Red);
}
if (modss == 1) {
FastLED.showColor(CRGB::Blue);
}
}
void loop() {
//tara();
//led(mode);
// pc_com();
}