#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSans9pt7b.h>
#include <Fonts/FreeSans12pt7b.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// SCL A5
// SDA A4
#define OLED_RESET 0 // GPIO0
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
//Adafruit_SSD1306 display(128, 32, &Wire);
int button1 = 2;
int button2 = 3;
int button1State = 0;
int button2State = 0;
int previousButton1State = 0;
unsigned long previousMillis = 0;
unsigned long currentMillis = 0;
int sec = 0;
int milli = 0;
bool running = false;
void setup() {
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
//display.setTextSize();
display.setTextColor(WHITE);
display.display();
}
void loop() {
button1State = digitalRead(button1);
button2State = digitalRead(button2);
currentMillis = millis();
if (button2State == LOW) {
sec = 0;
milli = 0;
running = false;
}
if (button1State == LOW && previousButton1State == HIGH && (currentMillis - previousMillis >= 100)) {
if (running == false) {
running = true;
} else {
running = false;
}
previousMillis = currentMillis;
display.setFont(&FreeSans9pt7b);
display.setFont();
display.setCursor(25,38);
display.print("press zero to start");
}
previousButton1State = button1State;
if (running) {
//msec=(millis();
//milli=(msec%1000)/10;
milli = milli + 1;
if (milli >= 10) {
sec = sec + 1;
milli = 0;
}
}
//display.clearDisplay();
//display.setCursor(0, 0);
display.clearDisplay();
display.setFont(&FreeSans9pt7b);
display.setFont();
display.setCursor(25,0);
display.print("Viscosity Time");
display.setFont(&FreeSans12pt7b);
display.setCursor(35,35);
if (sec < 10) {
display.print("00");
display.print(sec);
display.setCursor(75,35);
display.print(",");
} else if (sec < 100) {
display.print("0");
display.print(sec);
display.setCursor(75,35);
display.print(",");
}else if (sec < 1000) {
//display.print("0");
display.print(sec);
display.setCursor(75,35);
display.print(",");
}
if (milli < 100) {
display.setCursor(80,35);
display.setFont(&FreeSans9pt7b);
//display.print("0");
display.print(milli);
display.setCursor(95,35);
display.print("s");
} else {
display.setCursor(80,35);
display.setFont(&FreeSans9pt7b);
display.print(milli);
display.setCursor(95,35);
display.print("s");
}
display.display();
delay(10);
}