#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "RTClib.h"
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// I2C RTC
TwoWire I2C_RTC = TwoWire(0);
// I2C OLED
TwoWire I2C_OLED = TwoWire(1);
RTC_DS3231 rtc;
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &I2C_OLED, -1);
void setup() {
Serial.begin(115200);
// RTC I2C
I2C_RTC.begin(25, 26);
// OLED I2C
I2C_OLED.begin(5, 4);
if (!rtc.begin(&I2C_RTC)) {
Serial.println("RTC tidak ditemukan");
while (1);
}
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED gagal");
while (1);
}
display.clearDisplay();
}
void loop() {
DateTime now = rtc.now();
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,10);
display.print(now.hour());
display.print(":");
display.print(now.minute());
display.print(":");
display.print(now.second());
display.display();
delay(1000);
}