//PINBELEGUNG VARIABEL
// LED FÜR DEBUG
#define MENUPIN 6
#define FORWARDPIN 2
#define BACKWARDPIN 3
#define PLAYPAUSEPIN 4
#define LEDPIN 5
// Wichtig für entprellung mit Millis
static unsigned long SafeStartTime = 0;
unsigned long StartTime;
//Buttonflags für Buttons
bool ButtonFlagM = false;
bool ButtonFlagF = false;
bool ButtonFlagB = false;
bool ButtonFlagPP = false;
/*
Menüführungen:
0/1 Main Menu - Songs
2/3 Main Menu - Settings
4/5 Main Menu - Timer
6/7 Hidden Meme
100/101 Music - Songs
300/301 Settings 1.
302/303 Settings 2.
304/305 Settings Turnoff
500/501 Timer Start Stop
502/503 Timer Reset
*/
void setup() {
Serial.begin(115200);
//Pinmodes für Buttons / LED zum Debuggen
pinMode(LEDPIN, OUTPUT);
pinMode(MENUPIN, INPUT_PULLUP);
pinMode(FORWARDPIN, INPUT_PULLUP);
pinMode(BACKWARDPIN, INPUT_PULLUP);
pinMode(PLAYPAUSEPIN, INPUT_PULLUP);
}
int counter = 0;
void logo() //durchlauf
{
Serial.println("ICH BIN DAS LOGO");
}
void menusongs() //Main Menu 1
{
Serial.println("Menu-Songs 1");
}
void menusettings() //Main Menu 2
{
Serial.println("Menu-Settings 2");
}
void menutimer() //Main Menu 3
{
Serial.println("Menu-Timer 3");
}
void music() //Display the Music Menu
{
Serial.println("Music");
}
void timerss() //timer start/stop
{
Serial.println("1. Timer Startstop");
}
void timerreset() // Timer reset
{
Serial.println("2. Timerreset");
}
void hiddenmeme() //verstecktes Meme
{
Serial.println("Kek");
}
void settings1() //Settings 1
{
Serial.println("1. Settings");
}
void settings2() //Settings 2
{
Serial.println("2. Settings");
}
void settingsturnoff() //Turn off the Display
{
Serial.println("3. Turnoff");
}
void loop()
{
int FButtonPressed = digitalRead(FORWARDPIN);
int BButtonPressed = digitalRead(BACKWARDPIN);
int PPButtonPressed = digitalRead(PLAYPAUSEPIN);
int MButtonPressed = digitalRead(MENUPIN);
if (counter<0) // für den Fall, dass jemand im Menü den Backwards Button drückt und er negativ wird
{
counter=4;
}
//counter für Menu Button
if (MButtonPressed == LOW)
{
StartTime=millis();
if (StartTime-SafeStartTime > 50)
{
ButtonFlagM = !ButtonFlagM;
counter = 0;
Serial.println(counter);
}
SafeStartTime = StartTime;
}
//counter für Forward Button
else if (FButtonPressed == LOW)
{
StartTime=millis();
if (StartTime-SafeStartTime > 50)
{
ButtonFlagF = !ButtonFlagF;
counter = counter+1;
Serial.println(counter);
}
SafeStartTime = StartTime;
}
//counter für Backward Button
else if (BButtonPressed == LOW)
{
StartTime=millis();
if (StartTime-SafeStartTime > 50)
{
ButtonFlagB = !ButtonFlagB;
counter = counter-3;
Serial.println(counter);
}
SafeStartTime = StartTime;
}
//Button für Play/Pause
else if (PPButtonPressed == LOW)
{
StartTime=millis();
if (StartTime-SafeStartTime > 50)
{
ButtonFlagPP = !ButtonFlagPP;
switch (counter)
{
case 1:
counter = 100;
break;
case 3:
counter = 300;
break;
case 5:
counter = 500;
break;
default:
break;
}
Serial.println(counter);
}
SafeStartTime = StartTime;
}
if(counter == 0)
{
menusongs();
counter++;
}
else if(counter == 2)
{
menusettings();
counter++;
}
else if(counter == 4)
{
menutimer();
counter++;
}
else if(counter == 6)
{
counter=0;
}
//MUSIC
else if(counter == 100)
{
music();
counter++;
}
//SETTINGS
else if(counter == 300)
{
settings1();
counter++;
}
else if(counter == 302)
{
settings2();
counter++;
}
else if(counter == 304)
{
settingsturnoff();
counter++;
}
//TIMER
else if(counter == 500)
{
timerss();
counter++;
}
else if(counter == 502)
{
timerreset();
counter++;
}
}