En esta sección aprenderás a programar una pantalla OLED SSD1306 conectada al microcontrolador PIC mediante la comunicación I2C. El objetivo es mostrar texto y variables en la pantalla OLED enviando los datos por medio de la comunicación I2C.
Display oled SSD1306
SSD1306 es un controlador CMOS OLED/PLED de un solo chip con controlador para sistema de visualización gráfica de matriz de puntos de diodo emisor de luz orgánico/polimérico. SSD1306 consta de 128 segmentos, 64 comunes que pueden admitir una resolución de pantalla máxima de 128 X 64. Está diseñado para panel OLED de tipo cátodo común.
SSD1306 incorpora control de contraste, oscilador RAM de pantalla y convertidor DC-DC eficiente, lo que reduce la cantidad de componentes externos y el consumo de energía. SSD1306 es adecuado para una amplia gama de aplicaciones portátiles compactas, como pantallas secundarias de teléfonos móviles, calculadoras y reproductores de MP3, etc.
La librería se coloca en la carpeta del proyecto que se este realizando o en la carpeta de los drivers del PIC C Compiler.
Se utiliza una variable de caracteres para el texto que se mostrara en la pantalla.
char texto[128]; //variable que contendrá el texto
Se coloca la función para inicializar la pantalla.
OLED_Begin();
Se limpia la pantalla inicialmente.
OLED_ClearDisplay();
Para colocar texto en la pantalla se coloca en una función que convierte el texto en cadena para posteriormente guardar el texto en la variable creada anteriormente (texto).
sprintf(texto,"HOLA MUNDO");
Se utiliza la siguiente función que define la posición donde se colocara el texto (30,1), se coloca la variable que contiene la información (texto) y se coloca el tamaño letra deseada (1).
OLED_DrawText(30,1,texto,1);
La librería de la pantalla contiene diferentes funciones para colocar diferentes formas geométricas, lineas y puntos en la pantalla.
Una de las funciones permite colocar un rectángulo, se coloca la coordenada del punto de inicio (10,9), el ancho (105) y la altura (21).
OLED_DrawRect(10,9,105,21);
Para colocar el valor de una variable en la pantalla se coloca el tipo de variable (%Lu) dentro del texto, en este caso el valor del ADC es de 10 bits por lo que el valor máximo es de 1023, se puede definir el numero máximo de dígitos que se mostraran, evitando borrar la pantalla para actualizar el valor de la variable, por lo que se coloca (%04lu), finalmente se coloca el nombre de la variable (potenciometro).
Se coloca la posición donde se mostrara la información (14,12), se coloca la variable que contiene la información (texto) y finalmente el tamaño de letra (2)