#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const byte sw_1 = 2;
const byte sw_2 = 3;
const byte sw_3 = 4;
const byte sw_4 = 5;
const byte sw_5 = 6;
bool tombol_1a = 0;
bool tombol_1b = 0;
bool tombol_1c = 0;
bool tombol_2a = 0;
bool tombol_2b = 0;
bool tombol_2c = 0;
bool tombol_3a = 0;
bool tombol_3b = 0;
bool tombol_3c = 0;
bool tombol_4a = 0;
bool tombol_4b = 0;
bool tombol_4c = 0;
bool tombol_5a = 0;
bool tombol_5b = 0;
bool tombol_5c = 0;
bool tombol_status = 0;
byte tombol_delay = 0; //reff
byte tombol_delay_limit = 5; //SETT
byte tombol_timer = 0; //reff
byte tombol_b_c_limit = 20; //SETT
bool tombol_a(){ //in:tombol_status
bool a = 0;
if (tombol_status==0){
a = 1;
tombol_status = 1;
}
else{
a = 0;
}
return a;
}
bool tombol_b(){
bool b = 0;
if (tombol_timer>tombol_b_c_limit && tombol_delay == tombol_delay_limit+1){
b = 1;
}
else if(tombol_timer>tombol_b_c_limit && tombol_delay_limit == 0){
b = 1;
}
else{
b = 0;
}
return b;
}
bool tombol_c(){
bool c = 0;
if (tombol_timer==tombol_b_c_limit-1){
c = 1;
}
else{
c = 0;
}
return c;
}
void timer_tombol(){
tombol_timer +=1;
if (tombol_timer>=254){
tombol_timer = 254;
}
else{}
}
void delay_tombol(){
if (tombol_delay_limit>0 && tombol_delay < tombol_delay_limit+1){
tombol_delay +=1;
}
else if (tombol_delay >= tombol_delay_limit+1){
tombol_delay = 1;
}
else{
tombol_delay = 0;
}
}
int tes_1a = 0;
int tes_2a = 0;
int tes_3a = 0;
int tes_4a = 0;
int tes_5a = 0;
int tes_1b = 0;
int tes_2b = 0;
int tes_3b = 0;
int tes_4b = 0;
int tes_5b = 0;
int tes_1c = 0;
int tes_2c = 0;
int tes_3c = 0;
int tes_4c = 0;
int tes_5c = 0;
void setup() {
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
pinMode(sw_1, INPUT_PULLUP);
pinMode(sw_2, INPUT_PULLUP);
pinMode(sw_3, INPUT_PULLUP);
pinMode(sw_4, INPUT_PULLUP);
pinMode(sw_5, INPUT_PULLUP);
}
void loop() {
display.clearDisplay();
display.setTextSize(1); // Normal 1:1 pixel scale
display.setTextColor(WHITE); // Draw white text
display.setCursor(0,0); // Start at top-left corner
if (digitalRead(sw_1)==LOW){
tombol_1a = tombol_a();
timer_tombol();
delay_tombol();
tombol_1b = tombol_b();
tombol_1c = tombol_c();
}
else if (digitalRead(sw_2)==LOW){
tombol_2a = tombol_a();
timer_tombol();
delay_tombol();
tombol_2b = tombol_b();
tombol_2c = tombol_c();
}
else if (digitalRead(sw_3)==LOW){
tombol_3a = tombol_a();
timer_tombol();
delay_tombol();
tombol_3b = tombol_b();
tombol_3c = tombol_c();
}
else if (digitalRead(sw_4)==LOW){
tombol_4a = tombol_a();
timer_tombol();
delay_tombol();
tombol_4b = tombol_b();
tombol_4c = tombol_c();
}
else if (digitalRead(sw_5)==LOW){
tombol_5a = tombol_a();
timer_tombol();
delay_tombol();
tombol_5b = tombol_b();
tombol_5c = tombol_c();
}
else{
tombol_status = 0;
tombol_timer = 0;
tombol_delay = 0;
tombol_1b = 0;
tombol_2b = 0;
tombol_3b = 0;
tombol_4b = 0;
tombol_5b = 0;
}
//----------------------TES Print tombol_a
display.print("a");
display.print("-");
display.print(tes_1a);
display.print("-");
display.print(tes_2a);
display.print("-");
display.print(tes_3a);
display.print("-");
display.print(tes_4a);
display.print("-");
display.println(tes_5a);
display.print("b");
display.print("-");
display.print(tes_1b);
display.print("-");
display.print(tes_2b);
display.print("-");
display.print(tes_3b);
display.print("-");
display.print(tes_4b);
display.print("-");
display.println(tes_5b);
display.print("c");
display.print("-");
display.print(tes_1c);
display.print("-");
display.print(tes_2c);
display.print("-");
display.print(tes_3c);
display.print("-");
display.print(tes_4c);
display.print("-");
display.println(tes_5c);
display.println(tombol_timer);
display.println(tombol_delay);
display.println(tombol_status);
if (tombol_1a == 1){
tes_1a +=1;
}
else{}
if (tombol_2a == 1){
tes_2a +=1;
}
else{}
if (tombol_3a == 1){
tes_3a +=1;
}
else{}
if (tombol_4a == 1){
tes_4a +=1;
}
else{}
if (tombol_5a == 1){
tes_5a +=1;
}
else{}
if (tombol_1b == 1){
tes_1b +=1;
}
else{}
if (tombol_2b == 1){
tes_2b +=1;
}
else{}
if (tombol_3b == 1){
tes_3b +=1;
}
else{}
if (tombol_4b == 1){
tes_4b +=1;
}
else{}
if (tombol_5b == 1){
tes_5b +=1;
}
else{}
if (tombol_1c == 1){
tes_1c +=1;
}
else{}
if (tombol_2c == 1){
tes_2c +=1;
}
else{}
if (tombol_3c == 1){
tes_3c +=1;
}
else{}
if (tombol_4c == 1){
tes_4c +=1;
}
else{}
if (tombol_5c == 1){
tes_5c +=1;
}
else{}
//-------------------------
display.display();
}