// ---------------------------------------------------------------------------
// (| " Prueba_resolucion_OLED.ino "|)
// (| " Sketch de prueba básica 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 "RESOLUTION TEST OLED" por "|)
// (| " 5 segundos y realiza un barrido horizontal y vertical simultaneo "|)
// (| " para averiguar de que resolucion es la pantalla OLED conectada y "|)
// (| " repite ese ciclo indefinidamente. "|)
// (| " "|)
// (| " 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/NANO. "|)
// (| " El pin SCL de la OLED 0.96" monocromática I2C 128x64 va al pin A5 "|)
// (| " del Arduino UNO/NANO. "|)
// (| " "|)
// (| " Este código de ejemplo es de dominio público. "|)
// (| " "|)
// (| " 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/339740140493603410 "|)
// (| " Descarga gratis este sketch en: "|)
// (| " https://create.arduino.cc/editor/jorgechac/28219937-e44b-4390-9c58-c63fc6fe9b72/preview "|)
// ------------------------------------------------------------------------------------------------
#include <OLED_I2C.h>
#include <math.h>
OLED myOLED(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
void setup()
{
myOLED.begin(); //inicializa el display OLED
myOLED.setFont(SmallFont); //seteo el tamaño de la fuente
myOLED.print("RESOLUTION TEST OLED", CENTER, 0); //imprime la frase entre comillas
myOLED.update(); // actualiza la pantalla haciendo lo anterior
delay(5000); // visualiza el mensaje estatico por 5 segundos (solo la primera vez)
myOLED.clrScr(); // borra la pantalla
}
void loop ()
{
int i=0;
int j=0;
for(i=0;i<64;i++){
myOLED.printNumI(j,j-12,20); // imprime el valor de la entrada analogica(valor,x,y)
myOLED.printNumI(i,1,i-8); // imprime el valor de la entrada analogica
myOLED.drawLine(1,i,30,i); // dibuja una recta entre (X0,Y0) y (X1,Y1) seteando (X0,Y0,X1,Y1)
myOLED.drawLine(j,10,j,30); // dibuja una recta entre (X0,Y0) y (X1,Y1) seteando (X0,Y0,X1,Y1)
myOLED.update(); //actualiza la pantalla
delay(100);
myOLED.clrScr(); //borra la pantalla
j=j+1;
}
delay(500);
for(j=63;j<128;j++){
myOLED.printNumI(j,j-17,20); // imprime el valor de la entrada analogica(valor,x,y)
myOLED.printNumI(63,1,i-8); // imprime el valor de la entrada analogica
myOLED.drawLine(1,63,30,63); // dibuja una recta entre (X0,Y0) y (X1,Y1) seteando (X0,Y0,X1,Y1)
myOLED.drawLine(j,10,j,30); // dibuja una recta entre (X0,Y0) y (X1,Y1) seteando (X0,Y0,X1,Y1)
myOLED.update(); //actualiza la pantalla
delay(100);
myOLED.clrScr(); //borra la pantalla
}
myOLED.printNumI(j,j-21,20); // imprime el valor de la entrada analogica(valor,x,y)
delay(3000);
}
// si horizontal llega de 0 a 127, entonces tiene 128
// si vertical llega de 0 a 63, entonces tiene 64
// asi se obtiene que esta pantalla OLED tiene un resolución de 128x64 por ejemplo.