#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
unsigned long tiempoinicial = 0;
unsigned long intervalo = 2000; // Intervalo de 2 segundos (en milisegundos)
// Inicializar las pantallas OLED con I2C y direcciones 0x3C y 0x3D
Adafruit_SSD1306 display1(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1, 0x3C);
Adafruit_SSD1306 display2(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1, 0x3D);
void setup() {
// Inicializar la comunicación I2C
Wire.begin();
// Inicializar ambas pantallas OLED
if (!display1.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Error al iniciar la primera pantalla OLED SSD1306"));
while (1);
}
if (!display2.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
Serial.println(F("Error al iniciar la segunda pantalla OLED SSD1306"));
while (1);
}
}
void loop() {
Ojos();
}
void Ojos() {
// Limpiar ambas pantallas
display1.clearDisplay();
display2.clearDisplay();
// Dibujar un ojo en la primera pantalla
display1.fillCircle(64, 30, 25, WHITE);
// Dibujar el otro ojo en la segunda pantalla
display2.fillCircle(64, 30, 25, WHITE);
// Actualizar ambas pantallas
display1.display();
display2.display();
unsigned long tiempoactual = millis();
if (tiempoactual - tiempoinicial >= intervalo) {
tiempoinicial = tiempoactual;
// Limpiar ambas pantallas nuevamente
display1.clearDisplay();
display2.clearDisplay();
// Actualizar ambas pantallas para borrar los ojos
display1.display();
display2.display();
}
}