0. Componentes y programación necesaria para instalación del pantalla OLED

Requeridos componentes:

{Product:92}{Product:2000}{Product:287}{Product:865}{Product:428}

El programa Arduino:

I. Cómo conectar la pantalla OLED 0.96´´ Amarillo-Azul
 

En primer lugar, conecte la pantalla OLED 0,96'' con el VCC de 3.3V tal y  como está indicado en la imagen.

Cableado%2Bm%25C3%25B3dulo%2Bpantalla%2BOLED%2B0.96%2Bcon%2Bel%2Bm%25C3%25B3dulo%2BUNO.jpg

II. Comunicación entre la pantalla OLED 0.96´´ y el módulo UNO

Primero vamos a poner en funcionamiento un programa para ver cuál es la dirección I2C de la pantalla.
Este programa va a permitir escanear y listar por el monitor serie la dirección de todos los dispositivos I2C conectados a la placa módulo UNO e indicar la dirección hexadecimal de cada uno.
En un archivo nuevo, escribimos el código siguiente en la interfaz de programa Arduino.
Imagen%2B1.jpg
Para que el programa pueda compilar con éxito, se necesita absolutamente descargar la librería Arduino Wire.h, colocando su carpeta a la dirección siguiente de su sistema :

C:\Program Files (x86)\Arduino\libraries

Una vez que ha copiado el código en la interfaz, haga clic en Programa/Verificar/Compilar.


Imagen%2B2.jpg

Aparecerá un mensaje informándole si el código se ha copiado con éxito:
Imagen%2B3.jpg
Una vez compilado cargue el programa en el micro controlador ATMEGA328P-PU del módulo Uno R3, haciendo clic en Programa/Subir.
Imagen%2B4.jpg
Una vez que el programa esté subido abra el monitor serie haciendo clic en Herramientas/Monitor Serie de la interfaz Arduino.
Imagen%2B5.jpg
El módulo UNO nos indica que la dirección hexadecimal I2C de la pantalla OLED 0,96'' es 0x3C.

IV. Dibujar un patrón en la pantalla OLED 0.96''

Para aprender a escribir en la pantalla vamos a empezar dibujando un primer patrón de rayas, para ello vamos a introducir un código enviando el mismo byte en cada instante 0x81 o en binario 10000001, lo cuál dibujará un patrón de rayas.
En un archivo nuevo, escribimos el código siguiente en la interfaz de programa Arduino.
Imagen%2B6.jpg
Imagen%2B7.jpg
Imagen%2B8.jpg
También añadiremos la librería Wire.h necesaria para la comunicación I2C con el chip de la pantalla. Una segunda línea defina la dirección I2C de la pantalla OLEC 0.96" que es 0x3C.

La primera función void inicializar_pantalla ( ) que escribimos sirve para iniciar la pantalla. Toda la rutina que incluye está escrita según la página 64 del archivo de documentación del dispositivo.

Una segunda función void setup ( ) sirve para ejecutar entre otros toda la rutina permitiendo de configurar la comunicación entre la pantalla OLED 0.96'' y el módulo UNO, para configurar el contraste, para encender, limpiar la pantalla OLED 0.96'' y poner el cursor al comienzo es decir línea 0, columna 0.

Una vez que ha copiado el código en la interfaz, haga clic en Programa/Verificar/Compilar.
Imagen%2B9.jpg
Debajo de su pantalla en la interfaz Arduino, aparecerá mensaje del compilador que le confirmará si el código ha sido redactado bien o si presenta errores.
Si el código se compila con éxito, aparece el mensaje siguiente :
Imagen%2B10.jpg
Una vez compilado cargue el programa en el micro controlador ATMEGA328P-PU del módulo Uno R3, haciendo clic en Programa/Subir.
Imagen%2B11.jpg

Observe el resultado siguiente en la pantalla OLED 0.96'' donde aparece un patrón  de rayas regulares y delgadas :

Lineas%2B1.png
Podemos ver los colores que aparecen en la pantalla OLED 0.96'', en la parte superior de color amarillo y los tres cuartos inferiores de color azul.
Alterando el byte de datos en la función void loop( ) del programa atribuyéndolo el valor 0xAF, aparecerá un patrón rayado con líneas de grosor variable. Para ello modifique la función void loop( ) de la manera siguiente :
Imagen%2B12.jpg

Observe el resultado siguiente en la pantalla OLED 0.96'' donde aparece un patrón rayado con líneas de diferente grosor :
Lineas%2B2.png
En un tercer ejemplo vamos a dibujar un tablero de ajedrez con casillas de 8x8. Para lograrlo modifique de nuevo la función void loop( ) por la siguiente siguiente :
Imagen%2B13.jpg
Observe el resultado siguiente en la pantalla OLED 0.96'' donde aparece un tablero de ajedrez con casillas de tamaño 8x8 :
casillas%2B8x8.png

El resto del código será idénctico al del primer ejemplo, solo la función void loo () se modificará como se india en cada caso. 


II. Dibujar una imagen en la pantalla OLED 0.96''
En este apartado vamos a aprender a dibujar imágenes en la pantalla OLED 0.96" para poner en marcha sus propiedades gráficas. 
Para lograrlo vamos a utilizar un programa llamado LCD Converter que descargamos de la web con la finalidad de convertir una imagen del mismo tamaño que la pantalla 128x64 en un fichero de texto plano con el array de bytes.
El contenido de este fichero se añade después en la rutina del código Arduino para que aparezca esta misma imagen en la pantalla OLED 0,96''.
En un archivo nuevo, escribimos el código siguiente en la interfaz de programa Arduino.
Imagen%2B14.jpg
Imagen%2B15.jpg
Imagen%2B16.jpg
Imagen%2B17.jpg
Una vez que ha copiado el código en la interfaz, haga clic en Programa/Verificar/Compilar.
Imagen%2B18.jpg
Debajo de su pantalla en la interfaz Arduino, aparecerá un mensaje que le dirá si el código es correcto.
Si el código se compila con éxito, aparece el mensaje siguiente :



Imagen%2B19.jpg






Una vez compilado cargue el programa en el micro controlador ATMEGA328P-PU del módulo Uno R3, haciendo clic en Programa/Subir.




Imagen%2B20.jpg



Observe el resultado siguiente en la pantalla OLED 0.96'' donde aparece un logo de tamaño 128x64 :

Logo.png

VI. Cómo utilizar pantalla OLED 0.96"con sun sensor de temperatura/humedad DHT22/AM2302  

En este apartado vamos a ver como añadir una matriz que contiene una lista de caracteres que nos permita escribir en la pantalla OLED 0.96".

Utilizando como ejemplo la medición de temperatura y humedad del ambiente con el sensor DHT22/AM2302, mostraremos el resultado de las dos medidas en la pantalla OLED 0.96".
Primero vamos a guardar la matriz de caracteres en una sola imagen para luego mostrar sólo los que nos interesan cuando se necesite escribirlos.
Añadimos la librería Wire.h, necesaria para la comunicación I2C con el chip de la pantalla.
También la librería Adafruit_GFX.h que incluye el núcleo de la librería gráfica, la librería Adafruit_SSD1306.h necesaria para las pantallas OLED de monocromas o bicromas de tamaño 128x64 y 128x32.
Por fin añadimos la librería DHT.h para el sensor de temperatura / humedad DHT22/AM2302.
En primer lugar, conecte la pantalla OLED 0,96'' y el sensor DHT22/AM2302 con el VCC de 3.3V como está indicado en la imagen.
Con la placa prototipo MB-102 sin soldar, realice la siguiente conexión :


Cableado%2Bpantalla%2BOLED%2B0.96%2Bcon%2Bsensor%2BDHT22.jpg


En un archivo nuevo, escribimos los códigos siguientes en la interfaz de programa Arduino.


Imagen%2B21.jpg

Imagen%2B22.jpg


Para que el programa pueda compilar con éxito, debe descargar las librerías Arduino Wire.h, Adafruit_GFX.h, Adafruit_SSD1306.h, Fonts/FreeMonoBoldOblique12pt7b.h, DHT.h en  la ruta que se indica a continuación :




C:\Program Files (x86)\Arduino\libraries



Una vez que ha copiado el código en la interfaz, haga clic en Programa/Verificar/Compilar.


Imagen%2B23.jpg



Debajo de su pantalla en la interfaz Arduino, aparecerá un mensaje donde podrá ver si el código es correcto o contiene algún error.


Si el código se compila con éxito, aparece el mensaje siguiente :
Imagen%2B24.jpg
Una vez que ha copiado el código en la interfaz, haga clic en Programa/Verificar/Compilar.
Imagen%2B25.jpg
El resultado será el siguiente:  en la pantalla OLED 0.96'' aparece en una primera visualización de pantalla la temperatura ambiente en Grados Celsius y en una segunda visualización el porcentaje de humedad actual 128x64 :
Temperatura.jpgHumedad.jpg