#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <math.h>
#define ANCHO 128
#define ALTO 64
Adafruit_SSD1306 display(ANCHO, ALTO, &Wire, -1);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
}
void loop() {
int centroX = 64;
int centroY = 32;
int radioInterior = 22; // Un poco más grande para que no toque el texto
int radioExterior = 28;
for (int anguloGrados = 0; anguloGrados <= 360; anguloGrados += 4) {
display.clearDisplay(); // Limpiamos para redibujar todo el progreso
// 1. Dibujar el texto "WAIT" centrado
display.setTextSize(1); // Tamaño de fuente pequeño
display.setTextColor(SSD1306_WHITE);
// Ajuste de cursor para centrar "WAIT" (cada letra mide aprox 6x8 px)
display.setCursor(centroX - 12, centroY - 3);
display.print("LOAD");
// 2. Dibujar el progreso del anillo hasta el ángulo actual
for (int j = 0; j <= anguloGrados; j += 2) {
float radianes = j * DEG_TO_RAD;
int x1 = centroX + cos(radianes) * radioInterior;
int y1 = centroY + sin(radianes) * radioInterior;
int x2 = centroX + cos(radianes) * radioExterior;
int y2 = centroY + sin(radianes) * radioExterior;
display.drawLine(x1, y1, x2, y2, SSD1306_WHITE);
}
display.display();
// No necesitamos delay largo aquí porque el doble bucle ya toma tiempo
}
delay(1500); // Pausa al terminar
}
Loading
ssd1306
ssd1306