//code by cefuve.com
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int PinCLK = 2;
const int PinDT = 3;
const int PinSW = 4;
int sayac = 0;
int durum;
int sondurum;
byte oben[8] = {
B00100,
B01110,
B10101,
B00100,
B00100,
B00100,
B00000,
B00000
};
byte unten[8] = {
B00000,
B00000,
B00100,
B00100,
B00100,
B10101,
B01110,
B00100
};
int state_clk_old;
int state_btn_old;
int count;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(PinCLK,INPUT);
pinMode(PinDT,INPUT);
pinMode(PinSW,INPUT);
state_clk_old= digitalRead(PinCLK);
anaMenu();
}
void loop() {
int state_btn = digitalRead(PinSW);
int state_clk = digitalRead(PinCLK);
int state_dt = digitalRead(PinDT);
if(state_clk_old == HIGH && state_clk == LOW)
{
if(state_dt == LOW){
count--;
}else{
count++;
}
if(count <= 0)
{
count =0;
}
if(count >= 5)
{
count = 5;
}
lcd.clear();
anaMenu();
}
delay(5);
state_clk_old = state_clk;
if(state_btn_old == HIGH && state_btn == LOW){
Serial.println("hallo");
}
state_btn_old = state_btn;
}
void anaMenu(){
switch(count){
case 0:
lcd.setCursor(0,0);
lcd.print(" MENU ");
lcd.setCursor(0,1);
lcd.print("-->Menu1 ");
lcd.setCursor(0,2);
lcd.print(" Menu2 ");
lcd.setCursor(0,3);
lcd.print(" Menu3 ");
break;
case 1:
lcd.setCursor(0,0);
lcd.print(" MENU ");
lcd.setCursor(0,1);
lcd.print(" Menu1 ");
lcd.setCursor(0,2);
lcd.print("-->Menu2 ");
lcd.setCursor(0,3);
lcd.print(" Menu3 ");
break;
case 2:
lcd.setCursor(0,0);
lcd.print(" MENU ");
lcd.setCursor(0,1);
lcd.print(" Menu1 ");
lcd.setCursor(0,2);
lcd.print(" Menu2 ");
lcd.setCursor(0,3);
lcd.print("-->Menu3 ");
lcd.createChar(0, unten); //das Byte-Array in den LCD-Speicher 0 schreiben
lcd.setCursor(19, 3);
lcd.write( (uint8_t) 0 ); // Byte-Array von LCD-Speicherplatz 0 ausgeben
break;
case 3:
lcd.setCursor(0,0);
lcd.print(" MENU ");
lcd.setCursor(0,1);
lcd.print("-->Menu4 ");
lcd.setCursor(0,2);
lcd.print(" Menu5 ");
lcd.setCursor(0,3);
lcd.print(" Menu6 ");
lcd.createChar(0, oben); //das Byte-Array in den LCD-Speicher 0 schreiben
lcd.setCursor(19, 0);
lcd.write( (uint8_t) 0 ); // Byte-Array von LCD-Speicherplatz 0 ausgeben
break;
case 4:
lcd.setCursor(0,0);
lcd.print(" MENU ");
lcd.setCursor(0,1);
lcd.print(" Menu4 ");
lcd.setCursor(0,2);
lcd.print("-->Menu5 ");
lcd.setCursor(0,3);
lcd.print(" Menu6 ");
break;
case 5:
lcd.setCursor(0,0);
lcd.print(" MENU ");
lcd.setCursor(0,1);
lcd.print(" Menu4 ");
lcd.setCursor(0,2);
lcd.print(" Menu5 ");
lcd.setCursor(0,3);
lcd.print("-->Menu6 ");
break;
}
}