// LCD1602 to Arduino Uno connection example
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int btnUp = 5;
int buttonStateUp;
int lastButtonStateUp = LOW;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
int readingUp;
int btnDown = 6;
int buttonStateDown;
int lastButtonStateDown = HIGH;
unsigned long lastDebounceTime1 = 0;
unsigned long debounceDelay1 = 50;
int readingDown;
int led1State = 0;
int led1Current;
int led2State = 0;
int led2Current;
int led3State = 0;
int led3Current;
int led4State = 0;
int led4Current;
int men = 1;
void setup() {
for(int x = 1; x <= 4; x++){
pinMode(x, OUTPUT);
}
pinMode(btnUp, INPUT);
pinMode(btnDown, INPUT);
lcd.begin(16, 2);
}
void loop() {
bttns();
menu();
treshold_btn();
}
// THIS IS THE MENU FUNCTION //
void menu () {
switch(men){
case 1:
lcd.setCursor(0,0);
lcd.print(">LED1");
lcd.setCursor(0,1);
lcd.print(" LED2");
lcd.setCursor(8,0);
lcd.print(" LED3");
lcd.setCursor(8,1);
lcd.print(" LED4");
break;
case 2:
lcd.setCursor(0,0);
lcd.print(" LED1");
lcd.setCursor(0,1);
lcd.print(">LED2");
lcd.setCursor(8,0);
lcd.print(" LED3");
lcd.setCursor(8,1);
lcd.print(" LED4");
break;
case 3:
lcd.setCursor(0,0);
lcd.print(" LED1");
lcd.setCursor(0,1);
lcd.print(" LED2");
lcd.setCursor(8,0);
lcd.print(">LED3");
lcd.setCursor(8,1);
lcd.print(" LED4");
break;
case 4:
lcd.setCursor(0,0);
lcd.print(" LED1");
lcd.setCursor(0,1);
lcd.print(" LED2");
lcd.setCursor(8,0);
lcd.print(" LED3");
lcd.setCursor(8,1);
lcd.print(">LED4");
break;
default:
break;
}
}
// THIS IS THE BUTTONS FUNCTION //
void bttns(){
//////////////////up///////////////////////
readingUp = digitalRead(btnUp);
if (readingUp != lastButtonStateUp) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (readingUp != buttonStateUp) {
buttonStateUp = readingUp;
if (buttonStateUp == HIGH) {
men++;
}
}
lastButtonStateUp = readingUp;
}
lastButtonStateUp = readingUp;
///////////////////////ok////////////////////////
readingDown = digitalRead(btnDown);
if (readingDown != lastButtonStateDown) {
lastDebounceTime1 = millis();
}
if ((millis() - lastDebounceTime1) > debounceDelay1) {
if (readingDown != buttonStateDown) {
buttonStateDown = readingDown;
if (buttonStateDown == HIGH) {
if (men == 1 and led1State == 0){ //switch case
led1State = 1 ; // 1
led1Current = led1State;
digitalWrite(led1, led1Current);
}else if (men == 1 and led1State == 1){ //switch case
led1State = 0 ; // 0
led1Current = led1State;
digitalWrite(led1, led1Current);
}else if (men == 2 and led2State == 0){ //switch case
led2State = 1 ; // 1
led2Current = led2State;
digitalWrite(led2, led2Current);
}else if (men == 2 and led2State == 1){ //switch case
led2State = 0 ; // 0
led2Current = led2State;
digitalWrite(led2, led2Current);
}else if (men == 3 and led3State == 0){ //switch case
led3State = 1 ; // 1
led3Current = led3State;
digitalWrite(led3, led3Current);
}else if (men == 3 and led3State == 1){ //switch case
led3State = 0 ; // 0
led3Current = led3State;
digitalWrite(led3, led3Current);
}else if (men == 4 and led4State == 0){ //switch case
led4State = 1 ; // 1
led4Current = led4State;
digitalWrite(led4, led4Current);
}else if (men == 4 and led4State == 1){ //switch case
led4State = 0 ; // 0
led4Current = led4State;
digitalWrite(led4, led4Current);
}
}
}
lastButtonStateDown = readingDown;
}
lastButtonStateDown = readingDown;
}
void treshold_btn() {
if (men == 0) {
men = 1;
}
if (men == 5) {
men = 1;
}
}