#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);
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(); // Limpiamos la pantalla al inicio
display.setTextColor(SSD1306_WHITE); // Establecemos el color de las formas (blanco en este caso)
}
void loop() {
display.clearDisplay(); // Siempre limpia el buffer antes de dibujar nuevas formas para evitar "rastros"
// --- Dibujando Formas Básicas ---
// 1. Dibujar una línea: display.drawLine(x1, y1, x2, y2, color)
// Dibuja una línea diagonal desde la esquina superior izquierda hasta la inferior derecha.
display.drawLine(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, SSD1306_WHITE);
// 2. Dibujar el contorno de un rectángulo: display.drawRect(x, y, ancho, alto, color)
// Dibuja un rectángulo sin relleno en el centro de la pantalla.
display.drawRect(20, 10, 80, 40, SSD1306_WHITE);
// 3. Dibujar un rectángulo relleno: display.fillRect(x, y, ancho, alto, color)
// Dibuja un pequeño rectángulo sólido en la esquina superior izquierda.
display.fillRect(5, 5, 10, 10, SSD1306_WHITE);
// 4. Dibujar el contorno de un círculo: display.drawCircle(centro_x, centro_y, radio, color)
// Dibuja un círculo sin relleno en el centro de la pantalla.
display.drawCircle(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, 20, SSD1306_WHITE);
// 5. Dibujar un círculo relleno: display.fillCircle(centro_x, centro_y, radio, color)
// Dibuja un pequeño círculo sólido en la esquina superior derecha.
display.fillCircle(SCREEN_WIDTH - 15, 15, 5, SSD1306_WHITE);
// --- Mostrando Números Grandes como Plantilla ---
// También podemos cambiar el tamaño del texto para mostrar números o letras mucho más grandes,
// ideal para contadores o lecturas principales.
display.setTextSize(2); // Establece el tamaño del texto a 2x el tamaño normal
display.setCursor(5, 45); // Establece el cursor para el número grande
display.print(millis() / 1000 % 100); // Muestra un número que cambia cada segundo (0-99)
display.setTextSize(1); // Volvemos al tamaño normal para otros textos (opcional)
display.setCursor(90, 45);
display.print("SEG"); // Etiqueta para el número
// Este comando es crucial: envía todo lo que hemos "dibujado" al buffer de la pantalla
// para que se muestre físicamente en tu OLED.
display.display();
delay(1000); // Espera 1 segundo antes de volver a dibujar para que puedas ver las formas
}Loading
aitewinrobot-esp32c3-supermini
aitewinrobot-esp32c3-supermini