// ---------------------------------------------------------------------------
// (| " I_Love_Wokwi.ino "|)
// (| " Sketch para manejo básico de una pantalla OLED de 0.96" de 128x64 "|)
// (| " de resolución, que utiliza el controlador SSD1306 y que usa I2C "|)
// (| " para comunicarse, se implementara con Arduino UNO Rev3 / NANO. "|)
// (| " "|)
// (| " Muestra un mensaje inicial que dice "TEST OLED 0.96 128x64" por 5 "|)
// (| " segundos y seguidamente visualiza una imagen intermitente e "|)
// (| " indefinidamente, la cual corresponde al logotipo de wokwi como "|)
// (| " prueba. "|)
// (| " "|)
// (| " La libreria "OLED_I2C.zip" debe estar instalada en el IDE de "|)
// (| " arduino para que este sketch funcione. "|)
// (| " "|)
// (| " El pin SDA de la OLED 0.96" monocromática I2C 128x64 va al pin A4 "|)
// (| " del Arduino UNO Rev3 / NANO. "|)
// (| " El pin SCL de la OLED 0.96" monocromática I2C 128x64 va al pin A5 "|)
// (| " del Arduino UNO Rev3 / NANO. "|)
// (| " "|)
// (| " Este código de ejemplo es de dominio público. "|)
// (| " "|)
// (| " Maker: jorgechac© "|)
// (| " Visita https://jorgechac.blogspot.com/ "|)
// (| " "|)
// (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32 "|)
// (| " Whatsapp y Ventas NEQUI +573177295861 "|)
// (| " Bucaramanga - Colombia "|)
// (| " Simulación https://wokwi.com/projects/340292673718977106 "|)
// ---------------------------------------------------------------------------
#include <OLED_I2C.h>
OLED control_OLED(SDA, SCL, 8);
extern uint8_t SmallFont[]; // Selecciono el tamaño de fuente (Small o Big)
extern uint8_t MediumNumbers[]; // Selecciono el tamaño de fuente para los numeros
const uint8_t IDE_Arduino_20[] PROGMEM={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0010 (16) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0020 (32) pixels
0x00, 0x80, 0xC0, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x9C, 0xCE, 0xC6, 0x66, 0xE7, 0xE6, 0x8E, 0x1E, // 0x0030 (48) pixels
0x7C, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0040 (64) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, // 0x0050 (80) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0xC0, 0xC0, // 0x0060 (96) pixels
0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0070 (112) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0080 (128) pixels
0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x1F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0xFE, 0xFE, 0xFE, // 0x0090 (144) pixels
0xFC, 0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x38, 0x38, 0x18, 0x18, 0x1C, 0x1C, 0x0E, 0x0E, // 0x00A0 (160) pixels
0x0F, 0x0F, 0x03, 0x01, 0x00, 0x08, 0x1E, 0x3F, 0x3B, 0x71, 0x70, 0xE0, 0xE3, 0xFF, 0x7F, 0x00, // 0x00B0 (176) pixels
0x00, 0xEF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00C0 (192) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // 0x00D0 (208) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0x00E0 (224) pixels
0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00F0 (240) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0100 (256) pixels
0x00, 0x00, 0x00, 0x07, 0x7F, 0xFF, 0xFF, 0xF8, 0xE0, 0xC0, 0xC0, 0xC0, 0xE0, 0xF9, 0xFF, 0xFF, // 0x0110 (272) pixels
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0120 (288) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0130 (304) pixels
0x00, 0x07, 0x0F, 0x3F, 0xFC, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0140 (320) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // 0x0150 (336) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0F, 0x0F, 0x1F, 0x3F, 0x1F, 0x0F, // 0x0160 (352) pixels
0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0170 (368) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0180 (384) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0x0190 (400) pixels
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01A0 (416) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x70, 0x60, 0x00, // 0x01B0 (432) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, // 0x01C0 (448) pixels
0xC0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, // 0x01D0 (464) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, // 0x01E0 (480) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01F0 (496) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0200 (512) pixels
0x00, 0x00, 0xE0, 0xF0, 0x1C, 0x0E, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x1F, 0x3F, // 0x0210 (528) pixels
0x7F, 0xFF, 0xEF, 0x83, 0x01, 0x00, 0x30, 0x38, 0x1C, 0x0C, 0x0C, 0x1C, 0x08, 0x00, 0x00, 0x00, // 0x0220 (544) pixels
0x00, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x3E, // 0x0230 (560) pixels
0xB6, 0xB6, 0x38, 0x10, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, // 0x0240 (576) pixels
0xFF, 0xFF, 0xF8, 0x80, 0xF0, 0xFF, 0xFF, 0x3F, 0xFF, 0xFE, 0xE0, 0xC0, 0xFE, 0xFF, 0x3F, 0x03, // 0x0250 (592) pixels
0xF8, 0xFC, 0xFC, 0x1E, 0x0E, 0x0E, 0x0E, 0x3E, 0xFC, 0xF8, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xE0, // 0x0260 (608) pixels
0xF8, 0xFC, 0xBE, 0x1E, 0x0E, 0x06, 0x06, 0x3E, 0xFE, 0xFC, 0xC0, 0xF0, 0xFE, 0xFE, 0xFE, 0xFE, // 0x0270 (624) pixels
0xE0, 0xF0, 0xFE, 0xFF, 0x3F, 0x00, 0xDE, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0280 (640) pixels
0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x70, 0xF0, 0x80, 0x30, 0x70, 0x60, 0x0C, 0x3C, 0x38, 0x06, // 0x0290 (656) pixels
0x0E, 0x0C, 0x01, 0xFF, 0xFE, 0x70, 0x36, 0x36, 0xBB, 0xFB, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x70, // 0x02A0 (672) pixels
0xE0, 0xC1, 0xC1, 0xE1, 0x7F, 0x3F, 0x18, 0x38, 0x38, 0x38, 0x1F, 0x0F, 0x06, 0x00, 0x00, 0x00, // 0x02B0 (688) pixels
0x81, 0xC1, 0xF3, 0x7B, 0x3F, 0x0F, 0x0F, 0x0E, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, // 0x02C0 (704) pixels
0x00, 0x0F, 0x1F, 0x3F, 0x3F, 0x0F, 0x00, 0x00, 0x03, 0x1F, 0x1F, 0x1F, 0x1F, 0x07, 0x00, 0x00, // 0x02D0 (720) pixels
0x07, 0x0F, 0x1F, 0x1E, 0x1C, 0x1C, 0x1C, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0x1F, 0x1F, 0x1F, 0x01, // 0x02E0 (736) pixels
0x03, 0x07, 0x0F, 0x1F, 0x1E, 0x1C, 0x00, 0x00, 0x03, 0x1F, 0x1F, 0x1F, 0x07, 0x00, 0x00, 0x07, // 0x02F0 (752) pixels
0x0F, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0300 (768) pixels
0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, // 0x0310 (784) pixels
0x0E, 0x0E, 0x0F, 0x1F, 0x3D, 0x78, 0xF8, 0xF1, 0xF3, 0xE1, 0xE0, 0xE0, 0xC0, 0xC0, 0xC0, 0xC0, // 0x0320 (800) pixels
0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0xE0, 0x60, 0x70, 0x30, 0x38, 0x38, 0x3C, 0x3C, 0x3E, 0x3E, 0x7F, // 0x0330 (816) pixels
0xFF, 0xC7, 0x81, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xC0, 0x00, // 0x0340 (832) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0350 (848) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0360 (864) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0370 (880) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0380 (896) pixels
0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0390 (912) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, // 0x03A0 (928) pixels
0x7F, 0x7F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03B0 (944) pixels
0x00, 0x01, 0x3F, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, // 0x03C0 (960) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03D0 (976) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03E0 (992) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03F0 (1008) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0400 (1024) pixels
};
void setup()
{
control_OLED.begin(); // Inicializo la OLED
control_OLED.setFont(SmallFont); //seteo el tamaño de la fuente
control_OLED.print("TEST OLED 0.96 128x64", CENTER, 0); //imprime la frase entre comillas
control_OLED.update(); // actualiza la pantalla haciendo lo anterior
delay(5000); // visualiza el mensaje estatico por 5 segundos (solo la primera vez)
control_OLED.clrScr(); // borra la pantalla
}
void loop ()
{
control_OLED.invert(false); // Invertir colores FALSO
control_OLED.clrScr(); // borrar toda la pantalla
control_OLED.drawBitmap(0, 0, IDE_Arduino_20, 128, 64); // mostrar la imagen importada en OLED 128x64
control_OLED.update(); // Imprime en pantalla OLED
delay(700); // retardo
control_OLED.invert(true); // Invertir colores FALSO
control_OLED.update(); // Imprime en pantalla OLED
delay(700); // retardo, mostrar la imagen durante 700 mseg
}