const int buttonScrollPin = 2;
const int buttonSelectPin = 4;
const int blueLedPin = 13;
const int greenLedPin = 12;
volatile bool scrollingEnabled = true;
volatile bool menuItemSelected = false;
volatile int menuIndex = 0;
volatile bool lastScrollState = HIGH;
volatile bool lastSelectState = HIGH;
volatile int item=1;
unsigned long debounceDelay = 50; // Debounce delay in milliseconds
void setup() {
pinMode(buttonScrollPin, INPUT_PULLUP);
pinMode(buttonSelectPin, INPUT_PULLUP);
pinMode(blueLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (scrollingEnabled) {
if (digitalRead(buttonScrollPin) == LOW && lastScrollState == HIGH) {
if (buttonScrollPin) {
menuIndex++;
digitalWrite(blueLedPin, HIGH);
delay(100);
digitalWrite(blueLedPin, LOW);
Serial.print(menuIndex);
Serial.print(". Opt");
Serial.print(item);
Serial.println(menuItemSelected ? " Yes" : " No");
item++;
if(item>5){
item=1;
}
}
}
lastScrollState = digitalRead(buttonScrollPin);
}
if (menuItemSelected) {
digitalWrite(greenLedPin, HIGH);
} else {
digitalWrite(greenLedPin, LOW);
}
if (digitalRead(buttonSelectPin) == LOW && lastSelectState == HIGH) {
if (buttonSelectPin) {
menuItemSelected = !menuItemSelected;
scrollingEnabled = !menuItemSelected;
Serial.print("Menu Index_ ");
Serial.print(menuIndex);
Serial.println(menuItemSelected ? " Yes" : " No");
}
}
lastSelectState = digitalRead(buttonSelectPin);
}