Display gráfico Oled
¿Aburrido de utilizar pantallas LCD tradicionales en sus proyectos una y otra vez? ¡Bien! Aquí les mostrare un LCD que llamo mi atención, primero por que es OLED (diodo emisor de luz orgánico). Este LCD no utiliza un led para retro iluminar su pantalla, la diferencia esta en que cada pixel emite su propia luz, con esto logra mayor visibilidad a luz del medio ambiente, además son super livianos, casi delgados como el papel, teóricamente flexibles y producen una imagen más brillante y nítida.
SSD1309 OLED Driver
El núcleo de estos módulos se encuentra equipada con un potente procesador OLED CEMOS de un solo chip: SSD1309. Se puede comunicar con el microcontrolador de dos maneras, I2C y SPI.
Aquí te mostrare manejar los por SPI con el microcontrolador ATMEGA328P. Este interfaz se caracteriza por ser más rápido que el I2C, pero requiere de dos pines adicionales al I2C. Es una compensación entre pines y velocidad. Por lo tanto, realmente se reduce a tu elección.
Estos módulos vienen con distintos controladores como el SSD1306 y SSD1309. También vienen en distintas configuraciones, por ejemplo: 128×64, 128×32 en colores Blanco, Azul, Rojo y Verde. Todas estas pantallas comparten una familia de controladores la SSD, esto nos ayuda a reutilizar códigos escritos de la familia SSD. Al principio lo observé pequeño y lento, sin embargo, indagando más a profundidad encontré que estos vienen en distintos tamaños me refiero a lo físico. Los hay en 0.96 pulgadas y la de 2.42 pulgadas incluso viene en full color. Pero nos enfocaremos en el de 2,42 pulgadas, realmente me parece superior a los LCD 2×14 tradicionales.
Características Display Oled 2.42
- Interfaz I2C y SPI.
- Tecnología Oled Orgánico.
- Resolución de 128×64 pixeles.
- Alto contraste.
- Angulo de visiona de 160°.
- Consumo de corriente de 20mA.
- Tamaño físico de 2.42 pulgadas.
- Controlador IC: SSD1309.
Fuente alimentación Oled Display
Una pantalla OLED funciona sin luz de fondo por que produce su propia luz. Es la razón de su alto contraste y un amplio ángulo de visión además este puede mostrar niveles de negro profundos. La ausencia de luz de fondo reduce significativamente la potencia requerida para ejecutar el OLED. En promedio consume una corriente de aproximadamente de 30mA, aunque depende de cuentos led orgánicos estén encendidas.
El voltaje de funcionamiento es de 3.3v a 5v, sin embargo, el panel OLED requiere de un mayor voltaje de alimentación. Este elevador de voltaje viene incorporado en la parte posterior de estos módulos Oled de 2,42.
Mapeo de Memoria Display Oled
Independientemente del tamaño del módulo OLED, el controlador SSD1309 tiene un RAM de datos de visualización grafica (GDDRAM) incorporada de 1KB para la pantalla que contiene el patrón de bits que se mostrara. Esta área de memoria de 1K esta organizada en 8 paginas de 0 hasta 7. Cada pagina contiene 1208 columnas y cada columna puede almacenar 8 bits de datos.
Cada bit representa un pixel OLED particular en la pantalla que se puede ENCENDER o APAGAR mediante código.
PinOut Modulo Oled Gráfico
Este soporta interfaz de comunicación i2c y SPI, fíjate bien en la las líneas para la conexión por SPI. El puerto que contiene el SPI del atmega328 se encuentra en B.
Para conducir nuestra pantalla es necesario realizar bien las conexiones, de hecho, es simple, conecte VCC a 5V y GND a tierra. Ahora nos quedamos con los pines que se utilizan para la comunicación SPI. Tenga en cuenta que cada microcontrolador tiene su periférico SPI, mas adelante aremos para el PIC.
Pin RES: Reset para el controlador SSD1309, un pulso en bajo inicializa el controlador.
Pin CS: Selecciona el Display, para compartir el bus con otros dispositivos, activa en bajo.
Pin DC: Selecciona si la señal entrante es dato o control, si es dato DC=1.
Pin MOSI: Entrada de señal de datos.
Pin CLOCK: Entrada de señal de reloj.
A tener en cuenta que este esquemático solo nos muestra la conexión del ATMEGA328p al OLED. Usted debe agregarle un oscilador de 16Mhz y el pin Reset conectar a 5V mediante una resistencia de 10K y también debe conectar sus respectivos pines de alimentación.
Programa para Oled Display
El controlador SSD1309 Requiere de bastantes líneas de código para manejar lo. Se requiere un amplio conocimiento sobre el direccionamiento de memoria para usar el controlador, Para simplificar la tarea hemos decidido mudar una librería escrito para STM32F a atmega328p. Tenemos gran cantidad de información en la nube de las librerías para la familia SSD13XX.
Para descargar el programa y la librería: Click en el siguiente enlace.
https://mega.nz/#!W4ojgK7S!0L3zDbSb_whgxFpJ1fbTL07zemX1aVF0uAND93oXbFw
El programa es fácil de entenderlo y adaptarlo a tu necesidad tiene funciones como el: Gráficas de puntos, líneas, círculos, rectángulos, etc.
y finamente un vídeo donde se muestra su funcionamiento: