Hola amigos vamos a usar el OLED SSD1306 con comunicación I2C implementando funciones de texto básicas con la fuente que trae la librería por defecto y sus diferentes tamaños.
Hice este tutorial debido a que los ejemplos de las librerías que encontré en internet no me funcionaron así que arme un programa de ejemplo en donde se muestra como usar de manera fácil esta pantalla monocromática OLED de bajo consumo.
Es increíble que un display de menos de 3 dolares permita mostrar hasta 168 caracteres alfanuméricos y solo usa 2 pines de nuestra Arduino UNO para comunicarse por I2C. Lo mas genial es que es compatible con 3 y 5 voltios.
✔ Aquí les dejo archivo .ino:
✔ Aquí puedes comprar en ebay donde yo la compré:
✔ Aquí les dejo el código:
/*
Ejemplo basico de texto para la pantalla OLED 128x64 I2C con el driver SSD1306.
Este ejemplo es de dominio publico hagan lo que quieran con el :D
Autor: Sergio A. Yañez M.
Año: 2019
Tutorial para el canal AQUILES VAESA
youtube.com/aqulesvaesa
***** CONEXIONES *****
DISPLAY - ARDUINO
GND = GND
VCC = 5V ó 3.3V
SCL = A5
SDA = A4
Importante!!! necesitas instalar estas librerias:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
*/
#include <Adafruit_SSD1306.h> // incluye la libreria de adafruit para el driver del display OLED
Adafruit_SSD1306 display(128, 32); // declara la resolucion del display
int cont=0;
int tam=0;
void setup(){
delay(100); // se da una espera de 100ms para que el display inicie correctamente
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // inicia la comunicacion I2C con el display que tiene la direccion 0x3C
display.setRotation(0); // se escoje la orientacion del display puede ser 0, 1, 2 o 3
display.setTextColor(WHITE); // se le dice a la pantalla que el texto que se va a desplegar es en color blanco
display.dim(true); //dejamos el brillo en minimo
//esto solo es visible al iniciar el programa:
display.clearDisplay(); // limpia el buffer del display
display.setTextSize(2); // cambia tamaño de letra a 2
display.setCursor(0, 0); //(x,y) pone el cursor en el origen del display
display.println("Iniciando"); //escribe en buffer del display
display.display(); // muestra la informacion del buffer en la pantalla
delay(2000); //pausa de 2 segundos o 2000 milisegundos
}
void loop(){
// primera pantalla de presentacion
display.dim(true); // brillo maximo
display.clearDisplay();
display.setTextSize(1); // selecciona el tamaño de la letra puede ser u entre 1 y 10
display.setCursor(0, 0); // (x,y) pone el cursor en el origen del display
display.println("CANAL AQUILES VAESA");
display.setCursor(0, 30); // (x,y) pone el cursor mas o menos en la mitad horizontal del display
display.println("youtube.com/aquilesvaesa");
display.setCursor(30, 50); //(x,y)
display.println("> Suscribete <");
display.display();
delay(5000); //pausa de 5 segundos o 5000 milisegundos
// segundo pantallazo, bajamos el brillo del display
display.dim(true); //dejamos el brillo en minimo
display.clearDisplay();
display.setTextSize(2); // cambia tamaño de letra a 2
display.setCursor(0, 0);
display.println("Escala de letra 2. Probando texto largo y desborde"); //Por defecto el texto largo se desborda y continua en la siguiente linea
display.display();
delay(5000);
// tercer pantallazo
display.clearDisplay();
display.setTextWrap(false); // desactiva el desborde de texto
display.setTextSize(2);
display.setCursor(0, 0);
display.println("Desborde desactivado con la instruccion display.setTextWrap(false) ...");
display.display();
delay(5000);
// cuarto pantallazo
display.clearDisplay();
display.setTextWrap(true); // activa el desborde de texto
display.setTextSize(1);
display.setCursor(0, 30);
display.println("Vamos a desplegar una variable entera en diferentes escalas del 1 al 9 ");
display.display();
delay(7000);
// pantalla final varia con el incremento de las variables de los ciclos "for"
for(int tam = 1; tam < 10; tam++){ // creamos un ciclo con la variable tam (tamaño) que va desde 1 hasta 9
display.setTextSize(tam); // usa la variable tam para cambiar el tamaño del texto en cada ciclo
for(int cont=0; cont<10; cont++){ //creamos un ciclo con la variable cont (contador) que va de 0 a 9 y se muestra en la pantalla
display.clearDisplay();
display.setCursor(0, 0);
display.println(cont); // escribe el valor de la variable en el bufer
display.display();
delay(100);
}
}
} // Final de la funcion principal, salta al inicio del "void loop"



0 Comentarios