Cómo conectar la pantalla OLED I2C a ARDUINO

Pin
Send
Share
Send

Introducción: Presentación de la pantalla OLED I2C 128 * 64/128 * 32.

Hola Siendo un aficionado, un entusiasta de la electrónica, estoy seguro de que todo lo que hacemos son juguetes electrónicos, productos caseros o grandes proyectos, todo por curiosidad y pereza. La curiosidad busca comprender y comprender lo inmenso, no conocido, para entender cómo funciona allí, qué hace, cómo se mueve. Y la pereza inventa, para llegar a esto, para no levantarse, no estar en forma, no levantar, no ensuciarse o algo más importante.
Dado que ver la información es mejor que comprender lo que está por suceder en nuestro dispositivo, o que ya sucedió o está sucediendo, definitivamente queremos obtener esta información muy útil de nuestros microcontroladores, sensores u otros dispositivos. Y, en cualquier caso, quiero recibir cualquier mensaje, como preguntas, advertencias, recordatorios, emoticones, asteriscos, corazones y similares.
Para aquellos que también tienen un deseo similar, aquí hay una guía rápida para conectar y verificar pantallas OLED pequeñas y económicas.
A continuación, hablaremos sobre uno de los modelos ampliamente disponibles para radioaficionados de pantallas OLED controladas por el chip SSD1306, con un tamaño de pantalla de 0.96 pulgadas y una resolución de 128 * 64 o 128 * 32 píxeles. Estas pantallas son ideales para pequeños diseños de radioaficionados y productos caseros.

Paso 1: conceptos clave


Lo conectaremos a Arduino UNO / NANO, bueno, y al programa, respectivamente, también lo conectaremos a través de Arduino.
  • OLED es un diodo orgánico emisor de luz, es decir, un dispositivo semiconductor hecho de compuestos orgánicos, que comienza a emitir luz cuando una corriente eléctrica lo atraviesa.
  • ARDUINO es una plataforma para capacitación y automatización de edificios y sistemas de robótica.
  • ArduinoIDE es un entorno de desarrollo. Esta es una herramienta de programación gratuita de Arduino.
  • I2C - Circuitos interintegrados, línea de comunicación entre microcircuitos.
  • Un boceto, es un código, es un programa: terminología de Arduino.

Siga las instrucciones para comprender cómo conectar y configurar correctamente una pantalla OLED al Arduino y cómo mostrar su propio mensaje en su pantalla.
Hacemos todo en pasos.

Paso 2: accesorios


Solo necesitaremos cuatro cosas:
  • 1. La pantalla OLED en sí es de 0,96 "(se puede comprar en Aliexpress o Ebay, ¡larga, pero barata!).
  • 2. Arduino UNO / Nano (en el mismo lugar que la pantalla).
  • 3. Cables de conexión (ibid.).
  • 4. Una computadora o laptop con ArduinoIDE instalado.

En general, comprar piezas para varios proyectos en Aliexpress y Ebay es algo muy bueno, mientras está haciendo un proyecto, las piezas para otro ya están en camino. Lo principal es no olvidar hacer un pedido.

Paso 3: conecta la pantalla


La pantalla está controlada por el chip SSD1306, que admite cinco protocolos de comunicación y uno de los cuales es I2C. Los datos de este protocolo se transmiten en solo dos cables, y cuantos menos cables en el caso, mejor, por lo que nos conviene. Pero! Hay módulos con protocolo SPI e incluso cambio de protocolo, así que tenga cuidado al comprar este módulo.

Conclusiones utilizadas:
Pantalla OLED - SCL / SCK (reloj) y SDA (datos), potencia "Plus" (VCC) y potencia "Minus" (GND).

Conclusiones utilizadas:
Arduino UNO - SCL / SCK en A5 y SSD en A4, potencia "Plus" (+ 5V) y potencia "Minus" (GND).
Conecte la pantalla al Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Paso 4: escáner I2C


Cada dispositivo en el bus I2C tiene una dirección hexadecimal, no puede cambiarlo, está bien cosido, cada fabricante responsable debe indicarlo en algún lugar del estuche o en las instrucciones. Hay módulos con interruptores y puentes con los que puede cambiar la dirección, pero ... si los dispositivos son baratos, para ser feos, entonces el fabricante puede no molestarse en lidiar con ese problema, por lo que tendrá que determinarlo usted mismo.
En total, se pueden usar hasta 127 direcciones en el bus: 119 para dispositivos y 8 direcciones de servicio. La comunicación se realiza en estas direcciones. Hay un maestro, él es un maestro, pero hay un esclavo, también es un esclavo: los maestros preguntan, los seguidores responden, todo es simple.
Dado que nuestra pantalla OLED utiliza el protocolo de comunicación I2C, y la dirección puede no estar indicada, intentaremos encontrar esta dirección.
Esto se puede hacer descargando un breve boceto a su placa Arduino con OLED conectado. PERO!
¡Tómese su tiempo para cargar el boceto a Arduino de inmediato! Primero descarguemos el "controlador", es decir conectaremos las bibliotecas y para esto iremos directamente al "Paso 5" y luego volveremos y continuaremos.

Paso 4: Continuación:


Descargar CODE Finder_I2C_Hex_Address.ino, subir a Arduino.
Abra el "Port Monitor", configure la velocidad en 9600 y si todo está conectado correctamente, el programa mostrará la dirección del dispositivo, en mi caso OLED con la dirección 0x3F.

Paso 5: descargue y conecte bibliotecas


Para que todo funcione correctamente y no haya tenido que reinventar la rueda, debe conectar un par de bibliotecas al entorno ArduinoIDE, a saber: ADAFRUIT GFX y ADAFRUIT SSD1306, son necesarias para que Arduino pueda comunicarse de forma independiente con la pantalla OLED.
Puede conectar estas bibliotecas siguiendo estos pasos.
  • 1. En ArduinoIDE, vaya al menú Boceto.
  • 2. Seleccione "Incluir bibliotecas" / Incluir bibliotecas.
  • 3. Seleccione "Administrar bibliotecas" / Bibliotecas administradas.
  • 4. Busque ADAFRUIT GFX e instálelos.
  • 5. Busque ADAFRUIT SSD1306 e instálelos.

Con las últimas versiones de las bibliotecas, la pantalla funcionó torcidamente para mí, tal vez, por supuesto, esto se debe a la curvatura de las manos, pero después de instalar las primeras versiones de estas bibliotecas, todo comenzó a aparecer de manera suave y hermosa. Por alguna razón, las líneas de Pushkin aparecen en su memoria:
... y experiencia, hijo de errores difíciles,
y genio, paradojas de amigos.

Otra forma de instalar bibliotecas es encontrar, descargar e instalar estas bibliotecas usted mismo.
Para un ejemplo de Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Estas son las mismas bibliotecas Adafruit, pero las bibliotecas similares se buscan fácilmente en los motores de búsqueda, a petición de OLED I2C. Muchos entusiastas escriben bibliotecas "para sí mismos", y luego las ponen en la web. Qué biblioteca usar depende de usted.
Para que la pantalla muestre letras rusas, también se necesitan bibliotecas especiales, pero este es un tema separado para un artículo separado.
Después de instalar las bibliotecas, puede volver al paso 4 y finalmente averiguar la dirección hexadecimal de su pantalla.

Paso 6: Prueba de la pantalla


Para verificar si todo funciona como se esperaba, ejecute el ejemplo de prueba desde ArduinoIDE.
Para hacer esto:
Vaya a ARCHIVO> EJEMPLOS> SSD 1306> Seleccione 128x64 i2c
Si obtiene un "Error", intente elegir el SSD 1306> 128x32 i2c.
Si vuelve a producirse un error, intente cambiar la dirección I2C en la línea 61 del código de demostración y reemplácela con la dirección de su pantalla, que determinó en el paso 4.
Si el error ocurre nuevamente, puede intentar editar el archivo Adafruit_SSD1306.h, que se encuentra en la carpeta con las bibliotecas Arduino.

Abra el archivo Adafruit_SSD1306.h en un editor de texto y busque las líneas:
// # define SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Descomente la línea:
#define SSD1306_128_64.

Debería ser así:
#define SSD1306_128_64 // # define SSD1306_128_32 // #define SSD1306_96_16

Si el error es nuevamente, es necesario verificar las conexiones correctas.
Una vez completada la descarga, verá una animación de prueba en la pantalla, lo que significa que ha configurado correctamente su pantalla OLED.

Cuando disfrute de esta animación, puede continuar con el siguiente paso.

Paso 7: escribir tu propio mensaje


Para escribir su propio mensaje, primero cree un nuevo boceto en el entorno de programación ArduinoIDE.
En el encabezado, conectamos 4 bibliotecas:
#include #include #include #include #include 

Luego escribimos el protocolo de reinicio:
#define OLED_RESET 4 Adafruit_SSD1306 display (OLED_RESET);

En la CONFIGURACIÓN DE VACÍOS, especifique la dirección hexadecimal de nuestra pantalla 0x3C, que descubrimos en el "Paso No. 4".
Luego, inicialice la pantalla y bórrela:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Luego, en VOID LOOP, escribimos el código principal, es decir, nuestro mensaje, que queremos mostrar en la pantalla.
Para hacer esto, describimos el tamaño del texto, el color del texto, la posición del cursor y finalmente, mostramos un mensaje usando el comando println:
display.setTextSize (2); display.setTextColor (BLANCO); display.setCursor (0,0); display.println ("¡Bien hecho!"); display.display ();

Al final, no olvides escribir display.displaypara que la imagen se muestre en la pantalla, de lo contrario obtendrá un vacío.
Si hizo todo correctamente, aparecerá un mensaje en las pantallas.

Aquí está el CÓDIGO Starting_with_Arduino_OLED.ino de nuestro programa:
code.zip 946 b (descargas: 1366)

Pin
Send
Share
Send