#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
int b=0;
int t=0;
int mt=0;
const long interval = 1000;
unsigned long previousMillis = 0;
unsigned long currentMillis = millis();
void setup() {
Serial.begin(9600);
// by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32)
// init done
// Show image buffer on the display hardware.
// Since the buffer is intialized with an Adafruit splashscreen
// internally, this will display the splashscreen.
display.display();
delay(2000);
//clear the adafruiy splashscreen
display.clearDisplay();
display.setCursor(12,8);
display.setTextSize(2);
display.setTextColor(WHITE);
display.print("00:00:00");
display.display();
}
void loop()
{
seconds();
}
void seconds(void) //draw the alphabet
{
display.setCursor(0,0);
display.setTextSize(1);
display.setTextColor(WHITE);
for (uint8_t i=0; i < 22; i++) //168
{
if (i == '\n') continue;
display.write(i+65);
}
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;// save the last time you changed the number
display.setCursor(96,8);
display.setTextSize(2);
display.setTextColor(BLACK);
//display.write(b+(28,DEC));
delay(5);
display.write(b+(48));
delay(5);
display.display();
b++;
if (b==10)
{
tenseconds();
b=0;
}
delay(5);
display.setCursor(96,8);
display.setTextColor(WHITE);
delay(5);
display.write(b+48);
delay(5);
display.display();
}
display.setCursor(0,24);
display.setTextSize(1);
for (uint8_t i=0; i < 22; i++) //168
{
if (i == '\n') continue;
display.write(i+65);
}
display.display();
}
void tenseconds()
{
display.setCursor(84,8);
display.setTextSize(2);
display.setTextColor(BLACK);
display.write(t+(48));
display.display();
t++;
if (t==6)
{
t=0;
minutes();
}
display.setCursor(84,8);
display.setTextColor(WHITE);
display.write(t+48);
display.display();
}
void minutes()
{
display.setCursor(60,8);
display.setTextSize(2);
display.setTextColor(BLACK);
display.write(mt+(48));
display.display();
mt++;
if (mt==10)
{
mt=0;
//tminutes();
}
display.setCursor(60,8);
display.setTextColor(WHITE);
display.write(mt+48);
display.display();
}