#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Variable global para controlar la posición horizontal del texto en la animación
int textPosX = SCREEN_WIDTH; // Hacemos que el texto empiece fuera de la pantalla por la derecha
void setup() {
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Error: ¡No se encontró la pantalla OLED! Revisa las conexiones."));
for (;;);
}
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1); // Usamos tamaño de texto normal para esta animación
}
void loop() {
display.clearDisplay(); // Limpia la pantalla para el nuevo "frame" de la animación
// Dibuja el texto en la posición actual (textPosX)
display.setCursor(textPosX, SCREEN_HEIGHT / 2 - 4); // Centrado verticalmente
display.print("¡Mechatronicstore en movimiento!"); // El mensaje que se moverá
// Mueve la posición del texto un píxel a la izquierda en cada iteración
textPosX = textPosX - 1;
// Si el texto se ha ido completamente por la izquierda, lo reiniciamos al lado derecho
// Ajusta el valor -200 según la longitud de tu texto para que desaparezca completamente
if (textPosX < -200) {
textPosX = SCREEN_WIDTH;
}
display.display(); // Muestra el nuevo "frame" en la pantalla
delay(20); // Pequeño retraso para controlar la velocidad de la animación (menor delay = más rápido)
}