#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Définir la taille de l'écran OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

// Adresse I2C de l'écran OLED (peut varier selon le module)
#define OLED_ADDR 0x3C

// Créer une instance de l'écran OLED
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);

const unsigned char frame_0 [] PROGMEM = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x18, 0x03, 0x41, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x30, 0x30, 0x81, 0x60, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x08, 0xC0, 0x00, 0x40, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x04, 0x40, 0x02, 0x00, 0x40, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x00, 0x20, 0x01, 0x44, 0x00, 0x20, 0x01, 0xE0, 0x20, 0x94, 0x02, 0x06, 0x40, 0x0A, 0x18, 0x00, 0x03, 0x00, 0x02, 0x00, 0x40, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x12, 0x06, 0x7A, 0x92, 0x44, 0x80, 0x09, 0x90, 0x62, 0x1C, 0x84, 0x94, 0x20, 0xA4, 0x14, 0x05, 0x65, 0xE1, 0x78, 0x89, 0x04, 0x40, 0xE4, 0x49, 0x19, 0xDA, 0x62, 0x44, 0x01, 0x08, 0xC9, 0x41, 0x10, 0x00, 0x70, 0x11, 0x10, 0x40, 0x40, 0x00, 0x50, 0x00, 0x08, 0x01, 0x30, 0x40, 0x45, 0x00, 0x00, 0x00, 0x08, 0x04, 0x08, 0x02, 0x00, 0x02, 0x22, 0x00, 0x80, 0x20, 0x40, 0x04, 0x20
};

// Ajoute ici les autres frames...

void setup() {
  // Initialiser l'écran OLED
  if(!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) {
    Serial.println(F("Échec de l'initialisation de l'écran OLED"));
    for(;;);
  }

  display.clearDisplay();
}

void loop() {
  // Affiche les différentes frames en boucle
  display.clearDisplay();
  
  // Exemple pour afficher la première frame
  display.drawBitmap(0, 0, frame_0, SCREEN_WIDTH, SCREEN_HEIGHT, 1);
  display.display();
  
  // Ajouter un délai avant d'afficher la prochaine frame
  delay(100);  // ajuster pour la vitesse de l'animation
  
  // Répéter le processus pour les autres frames...
}