#include <Wire.h>
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
unsigned long previousMillis = 0;
int seconds = 0;
int minutes = 0;
bool playSymbol = true;
void drawVerticalText() {
u8g2.setFont(u8g2_font_6x10_tr); // Choisir une petite police
u8g2.setCursor(0, 60);
u8g2.print("O");
u8g2.setCursor(0, 50);
u8g2.print("A");
u8g2.setCursor(0, 40);
u8g2.print("I");
u8g2.setCursor(0, 30);
u8g2.print("D");
u8g2.setCursor(0, 20);
u8g2.print("U");
}
void drawPlaySymbol() {
u8g2.setFont(u8g2_font_open_iconic_play_1x_t);
u8g2.drawGlyph(15, 15, 0x0048); // Symbole play
}
void drawTimeline() {
u8g2.setFont(u8g2_font_6x10_tr);
u8g2.setCursor(40, 15);
u8g2.printf("%02d:%02d", minutes, seconds); // Minutes et secondes
}
void drawFrequencyBars() {
// Animation de barres de fréquence aléatoire
for (int i = 0; i < 10; i++) {
int barHeight = random(5, 20); // Hauteur de la barre entre 5 et 20
u8g2.drawBox(90 + i * 3, 30 - barHeight, 2, barHeight);
}
}
void updateTimer() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 1000) {
previousMillis = currentMillis;
seconds++;
if (seconds >= 60) {
seconds = 0;
minutes++;
}
}
}
void setup(void) {
u8g2.begin();
}
void loop(void) {
updateTimer();
u8g2.clearBuffer();
drawVerticalText();
drawPlaySymbol();
drawTimeline();
drawFrequencyBars();
u8g2.sendBuffer();
delay(100);
}