#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128,64,&Wire, -1);
// Variables to track time
unsigned long previousMillis = 0;
unsigned int sec,minu,h;
void setup() {
// Initialize the display
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Loop forever if initialization failed
}
display.clearDisplay(); // Clear the buffer
display.setTextSize(1); // Set text size
display.setTextColor(SSD1306_WHITE); // Set text color to white
display.setCursor(0, 0); // Set the initial cursor position
display.display(); // Display the initial frame
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 1000){
previousMillis = currentMillis;
sec++;
if (sec >= 60) {
sec=0;
minu++;
if (minu >= 60) {
minu= 0;
h++;
}
}
// Update the display
display.clearDisplay();
display.setCursor(0, 0);
display.print("Date: Wed/14/08/2024");
display.setCursor(0, 10);
display.print("Time: ");
display.print(h);
display.print(":");
if (minu < 10)display.print("0");
display.print(minu);
display.print(":");
if (sec < 10)display.print("0");
display.print(sec);
display.display();
}
}