#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); // Petite police pour texte vertical
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_2x_t); // Pictogramme plus grand
u8g2.drawGlyph(15, 30, 0x0048); // Symbole play agrandi
}
void drawTimeline() {
u8g2.setFont(u8g2_font_logisoso18_tf); // Police plus grande pour MM:SS
u8g2.setCursor(50, 35); // Ajustement du texte pour qu'il prenne plus d'espace
u8g2.printf("%02d:%02d", minutes, seconds); // Minutes et secondes
}
void drawFrequencyBars() {
// Diagramme animé de fréquence avec barres occupant tout l'espace restant
for (int i = 0; i < 10; i++) {
int barHeight = random(5, 30); // Ajustement de la hauteur des barres
u8g2.drawBox(90 + i * 4, 50 - barHeight, 3, barHeight); // Barres plus larges
}
}
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);
}