#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// declare an SSD1306 display object connected to I2C
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
//b1
const int b1 = 2;
int bs1 = 0;
int pbs1 = 0;
//b2
const int b2 = 3;
int bs2 = 0;
int pbs2 = 0;
int counter = 0;
int pcounter = 0;
void setup() {
// put your setup code here, to run once:
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
Serial.begin(9600);
Serial.println("Button Pushes");
// initialize OLED display with address 0x3C for 128x64
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
while (true);
}
delay(2000); // wait for initializing
oled.clearDisplay(); // clear display
oled.setTextSize(4); // text size
oled.setTextColor(WHITE); // text color
oled.setCursor(57, 20); // position to display
oled.println("N"); // text to display
oled.display(); // show on OLED
}
void loop() {
// put your main code here, to run repeatedly:
bs1 = digitalRead(b1);
bs2 = digitalRead(b2);
//b1
if(bs1 != pbs1)
{
if(bs1 == LOW)
{
counter++;
}
if(counter > 4)
{
counter = 4;
}
delay(50);
}
pbs1 = bs1;
//b2
if(bs2 != pbs2)
{
if(bs2 == LOW)
{
counter--;
}
if(counter < 0)
{
counter = 0;
}
delay(50);
}
pbs2 = bs2;
Serial.println(counter);
delay(50);
/*
if(counter != pcounter)
{
if(counter == 0)
{
oled.clearDisplay();
oled.setCursor(57, 20); // position to display
delay(50);
oled.println("N"); // text to display
oled.display(); // show on OLED
}
if(counter == 4)
{
oled.clearDisplay();
oled.setCursor(57, 20); // position to display
delay(50);
oled.println("OD"); // text to display
oled.display(); // show on OLED
}
oled.clearDisplay();
oled.setCursor(57, 20); // position to display
oled.println(counter); // text to display
oled.display(); // show on OLED
pcounter = counter;
}
*/
if(counter != pcounter)
{
oled.clearDisplay();
oled.setCursor(56, 20); // position to display
oled.println(counter); // text to display
oled.display(); // show on OLED
pcounter = counter;
}
if(counter == 0)
{
oled.clearDisplay();
oled.setCursor(56, 20); // position to display
oled.println("N"); // text to display
oled.display(); // show on OLED
}
if(counter == 4)
{
oled.clearDisplay();
oled.setCursor(43, 20); // position to display
oled.println("OD"); // text to display
oled.display(); // show on OLED
}
}