#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
//----------------------------------------------------Display---------------------------------------------------
#define TFT_DC 9
#define TFT_CS 10
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
//-----------------------------------------------------knöpfe----------------------------------------------------
const int button1Pin = 2;
const int button2Pin = 4;
// Initialisieren der Zustände für die Knöpfe
int buttonState1 = 0;
int buttonState2 = 0;
int lastButtonState1 = 0;
int lastButtonState2 = 0;
// Timer-Variablen
unsigned long buttonPressTime = 0;
const unsigned long debounceDelay = 50; // Zeit in Millisekunden für Entprellen
const unsigned long enterPressDelay = 1000; // Zeit in Millisekunden für Drücken beider Knöpfe
//------------------------------------------------------menus-----------------------------------------------------
const char* Hauptmenue[] =
{
'Main',
'Oil',
'Water',
'Voltage',
'AFR_err',
'Knock',
'Mapping',
'Gps'
};
//------------------------------------------------------ebene1------------------------------
const char M_1[]={};
const char M_2[]={};
const char M_3[]={};
const char M_4[]={};
const char M_5[]={};
const char M_6[]={};
const char M_7[]={};
const char M_8[]={};
//------------------------------------------------------ebene2------------------------------
//--------------------------------------------------------------
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
void menuwahl()
{
//enter funktionen
Serial.println(enter);
Serial.println(rechts);
Serial.println(links);
if ((m_erl==true)&&(m_else_erl==true)){Serial.println("Achtung, m-Rechte Stimmen nicht!");}
else if ((enter==true)&&(m_erl==true))
{m=m+1;if (m>=menulimit){Serial.println("achtung, m hat menügröße überschritten, Fehler!");};}
else if((enter==true)&&(m_else_erl==true))
{m_else=true;}
if (enter==false){}
else
{Serial.println("enter drücken ist in diesem Menu nicht erlaubt!");}
if(m_else_erl==false){m_else=false;}
//rechts funktion in allen Menusituationen
if ((rechts==true)&&(m==0))
{x=x+1; if(x>x_erl){x=0;} }
if ((rechts==true)&&(m==1))
{
y=y+1;if(x>x_erl){y=0;}}
if ((rechts==true)&&(m==2))
{z=z+1;if(x>x_erl){y=0;}}
//links funktion in allen Menusituationen
if ((links==true)&&(m==0))
{x=x-1; if(x>x_erl){x=0;} }
if ((links==true)&&(m==1))
{y=y-1;if(x>x_erl){y=0;}}
if ((links==true)&&(m==2))
{z=z-1;if(x>x_erl){y=0;}}
//Navigationsvariablen rücksetzen
enter=false;
rechts=false;
links=false;
menu_akt=x*100+y*10+z;
Serial.println(menu_akt);
//berechtigungen und aktuell angezeigtes Bild wählen
switch(menu_akt)
{
//Motorstrang
case 0:
x_erl=3;
y_erl=0;
z_erl=0;
m_erl=true;
m_else_erl=false;
break;
case 10:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 20:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 30:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 40:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 50:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 60:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 70:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=true;
m_else_erl=false;
break;
case 71:
x_erl=0;
y_erl=7;
z_erl=1;
m_erl=false;
m_else_erl=true;
break;
case 72:
x_erl=0;
y_erl=7;
z_erl=2;
m_erl=false;
m_else_erl=true;
if (m_else==true)
{
goback();
m_else=false;
}
break;
case 80:
x_erl=0;
y_erl=8;
z_erl=0;
m_erl=false;
m_else_erl=true;
if (m_else==true)
{
goback();
m_else=false;
}
break;
//Autostrang
case 100:
x_erl=3;
y_erl=0;
z_erl=0;
m_erl=true;
m_else_erl=false;
break;
case 101:
x_erl=1;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 102:
x_erl=1;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 103:
x_erl=1;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 104:
x_erl=1;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 105: //goback
x_erl=0;
y_erl=7;
z_erl=2;
m_erl=false;
m_else_erl=true;
if (m_else==true)
{
goback();
m_else=false;
}
break;
//Gps Strang
case 200:
x_erl=3;
y_erl=0;
z_erl=0;
m_erl=true;
m_else_erl=false;
break;
case 210:
x_erl=2;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 220:
x_erl=2;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=false;
break;
case 230:
x_erl=2;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=true;
break;
case 240:
x_erl=2;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=true;
break;
case 250: //goback
x_erl=2;
y_erl=5;
z_erl=0;
m_erl=false;
m_else_erl=true;
if (m_else==true)
{
goback();
m_else=false;
}
break;
//Einstellungen
case 300:
x_erl=3;
y_erl=0;
z_erl=0;
m_erl=true;
m_else_erl=false;
break;
case 310:
x_erl=3;
y_erl=3;
z_erl=0;
m_erl=true;
m_else_erl=false;
break;
case 311:
x_erl=3;
y_erl=3;
z_erl=2;
m_erl=false;
m_else_erl=true;
break;
case 312: //goback
x_erl=3;
y_erl=3;
z_erl=2;
m_erl=false;
m_else_erl=true;
if (m_else==true)
{
goback();
m_else=false;
}
break;
case 320:
x_erl=3;
y_erl=3;
z_erl=0;
m_erl=true;
m_else_erl=true;
break;
case 321:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 322:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 323:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 324:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 325:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 326:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 327:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 328:
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
break;
case 329: //goback
x_erl=3;
y_erl=3;
z_erl=9;
m_erl=false;
m_else_erl=true;
if (m_else==true)
{
goback();
m_else=false;
}
break;
}
}