#include <U8g2lib.h>
#include <Wire.h>
u8G2 SSD1306 128X64 NONAME F HW I2C u8g2(U8G2 R0, /* reset=*/ u8x8 pin none); //INITIALIZATION FOR USED OLED
#define BUTTON_DOWN_PIN 3
#define BUTTON_DOWN_LED 2
#define BUTTON_LEFT_PIN 6
#define BUTTON_LEFT_LED 5
#define BUTTON_UP_PIN 9
#define BUTTON_UP_LED 8
#define BUTTON_RIGHT_PIN 12
#define BUTTON_RIGHT_LED 11
int button_down_state = HIGH;
int button_down_state_prev = HIGH;
int button_down_led_state = LOW;
int button_left_state = HIGH;
int button_left_state_prev = HIGH;
int button_left_led_state = LOW;
int button_up_state = HIGH;
int button_up_state_prev = HIGH;
int button_up_led_state = LOW;
int button_right_state = HIGH;
int button_right_state_prev = HIGH;
int button_right_led_state = LOW;
void setup() {
// put your setup code here, to run once:
pinMode(BUTTON_DOWN_PIN, INPUT_PULLUP);
pinMode(BUTTON_DOWN_LED, OUTPUT);
pinMode(BUTTON_LEFT_PIN, INPUT_PULLUP);
pinMode(BUTTON_LEFT_LED, OUTPUT);
pinMode(BUTTON_UP_PIN, INPUT_PULLUP);
pinMode(BUTTON_UP_LED, OUTPUT);
pinMode(BUTTON_RIGHT_PIN, INPUT_PULLUP);
pinMode(BUTTON_RIGHT_LED, OUTPUT);
}
void loop() {
button_down_state = digitalRead(BUTTON_DOWN_PIN);
button_left_state = digitalRead(BUTTON_LEFT_PIN);
button_up_state = digitalRead(BUTTON_UP_PIN);
button_right_state = digitalRead(BUTTON_RIGHT_PIN);
//DOWN button
if (button_down_state_prev == LOW && button_down_state == HIGH) {
button_down_led_state = !button_down_led_state;
digitalWrite(BUTTON_DOWN_LED, button_down_led_state);
}
//LEFT button
if (button_left_state_prev == LOW && button_left_state == HIGH) {
button_left_led_state = !button_left_led_state;
digitalWrite(BUTTON_LEFT_LED, button_left_led_state);
}
//UP button
if (button_up_state_prev == LOW && button_up_state == HIGH) {
button_up_led_state = !button_up_led_state;
digitalWrite(BUTTON_UP_LED, button_up_led_state);
}
//RIGHT button
if (button_right_state_prev == LOW && button_right_state == HIGH) {
button_right_led_state = !button_right_led_state;
digitalWrite(BUTTON_RIGHT_LED, button_right_led_state);
}
button_down_state_prev = button_down_state;
button_left_state_prev = button_left_state;
button_up_state_prev = button_up_state;
button_right_state_prev = button_right_state;
delay (50);
}