/*☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄
☄ ☄
☄ ☘ DATOS GENERALES: ☄
☄ NOMBRE: Uso básico del display OLED SSD1306. ☄
☄ FECHA: 14 de marzo de 2026. ☄
☄ VERSIÓN: 1.0. ☄
☄ ☄
☄ AUTOR: Ejemplo didáctico para estudiantes de ingeniería. ☄
☄ COMPAÑÍA: Universidad de Colima - Facultad de Telemática. ☄
☄ ☄
☄ uC: ESP32 DevKit v1. ☄
☄ Nombre: ESP32 en Wokwi. ☄
☄ ☄
☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄
☄ ☄
☄ ☘ DESCRIPCIÓN DEL PROGRAMA: ☄
☄ Este programa inicializa la pantalla OLED SSD1306 y muestra texto, ☄
☄ números y figuras simples. ☄
☄ Se emplea la librería Adafruit SSD1306 y Adafruit GFX. ☄
☄ ☄
☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄☄*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Dimensiones del display
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// Dirección I2C típica del SSD1306
#define OLED_ADDR 0x3C
// Objeto display
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
// Inicialización de comunicación serial
Serial.begin(115200);
// Inicialización del display
if(!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) {
Serial.println(F("Error: no se encontró el display SSD1306"));
for(;;); // Detener ejecución si falla
}
// Limpiar pantalla
display.clearDisplay();
// Mostrar texto inicial
display.setTextSize(1); // Tamaño de texto
display.setTextColor(SSD1306_WHITE);// Color de texto
display.setCursor(0,0); // Posición inicial
display.println(F("Hola estudiantes!"));
display.println(F("OLED SSD1306 con ESP32"));
display.display(); // Actualizar pantalla
delay(2000);
// Dibujar figuras
display.clearDisplay();
display.drawRect(10, 10, 50, 30, SSD1306_WHITE); // Rectángulo
display.drawCircle(90, 30, 15, SSD1306_WHITE); // Círculo
display.display();
delay(2000);
}
void loop() {
// Ejemplo dinámico: contador
static int contador = 0;
display.clearDisplay();
display.setCursor(0,0);
display.setTextSize(2);
display.print("Contador:");
display.setCursor(0,30);
display.print(contador++);
display.display();
delay(1000);
}