#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Array kata lirik
String lirik[] = {
"Aduh,", "Abang", "Bukan", "Maksudku", "Begitu...",
"Masalah", "Stecu", "Bukan", "Berarti", "Tak", "Mau...",
"Jual", "mahal", "Dikit", "Kan", "Bisa",
"Coba", "kase", "Effort-nya", "Saja",
"Kalo", "Memang", "Cocok", "Bisa", "Datang", "Ke", "Rumah...",
"Stecu,", "Stecu,", "Stelan", "Cuek", "Baru", "Malu",
"Aduh,", "Ade", "Ini", "Mau", "Juga", "Abang", "Yang", "Rayu..."
};
int totalKata = sizeof(lirik) / sizeof(lirik[0]);
// Delay per kata (dalam milidetik)
unsigned long delayKata[] = {
600, 600, 600, 800, 1800,
600, 400, 600, 600, 800, 1800,
600, 600, 400, 400, 600,
600, 400, 600, 600,
600, 400, 600, 600, 600, 400, 1800,
400, 400, 400, 400, 400, 400,
600, 400, 400, 400, 400, 400, 400, 800
};
int indexKata = 0;
unsigned long lastUpdate = 0;
void setup() {
Serial.begin(9600);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
}
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(0, 20);
oled.println("Stecu");
oled.display();
delay(2000);
oled.clearDisplay();
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - lastUpdate >= delayKata[indexKata]) {
lastUpdate = currentMillis;
oled.clearDisplay();
oled.setTextSize(2);
oled.setCursor(0, 20);
oled.println(lirik[indexKata]);
oled.display();
indexKata++;
if (indexKata >= totalKata) {
indexKata = 0; // ulang dari awal
delay(2000); // jeda setelah selesai satu lagu
oled.clearDisplay();
}
}
}