Cómo conectar la pantalla OLED I2C a ARDUINO
Introducción: Introducción a la pantalla OLED I2C 128*64/128*32.
¡Hola! Como aficionado a la electrónica, estoy seguro de que todo lo que hacemos (juguetes electrónicos, productos caseros o grandes proyectos) es por curiosidad y pereza. La curiosidad se esfuerza por comprender y comprender lo vasto, lo desconocido, por descubrir cómo funciona allí, qué hace, cómo se mueve. Y la pereza inventa algo que se le ocurre, para no levantarse, no acercarse, no levantar, no ensuciarse ni nada importante.
Dado que ver información es mejor que descubrir qué está a punto de suceder en nuestro dispositivo, qué ya sucedió o está sucediendo, definitivamente querremos recibir esta información tan útil de nuestros microcontroladores, sensores u otros dispositivos. Y en cualquier caso quiero recibir cualquier mensaje, como preguntas, advertencias, recordatorios, emoticonos, estrellas, corazones y similares.
Para aquellos que también tienen un deseo similar, aquí hay una breve guía para conectar y probar pantallas OLED pequeñas y económicas.
A continuación, hablaremos de uno de los modelos de pantalla OLED más disponibles para los radioaficionados, controlado 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 proyectos caseros.
Lo conectaremos a Arduino UNO/NANO, y también lo programaremos a través de Arduino.
Siga las instrucciones para comprender cómo conectar y configurar correctamente la pantalla OLED al Arduino y cómo mostrar un mensaje personalizado en su pantalla.
Hacemos todo paso a paso.
Sólo necesitamos cuatro cosas:
En general, comprar piezas para varios proyectos en Aliexpress y Ebay es algo genial, mientras trabajas en un proyecto, las piezas para otro ya están en camino. Lo principal es no olvidarse de realizar un pedido.
La pantalla está controlada por un chip SSD1306 que admite cinco protocolos de comunicación, uno de los cuales es I2C. Los datos que utilizan este protocolo se transmiten a través de solo dos cables, y cuantos menos cables haya en la carcasa, mejor, por lo que nos conviene bastante.¡Pero! Hay módulos con protocolo SPI e incluso con conmutación de protocolo, así que tenga cuidado al adquirir este módulo.
Pines utilizados:
Pantalla OLED: SCL/SCK (reloj) y SDA (datos), potencia “más” (VCC) y potencia “menos” (GND).
Pines utilizados:
Arduino UNO - SCL/SCK en A5 y SSD en A4, potencia “Plus” (+5V) y potencia “Minus” (GND).
Conectando la pantalla a Arduino:
Cada dispositivo en el bus I2C tiene una dirección hexadecimal, no se puede cambiar, está cableado, cada fabricante responsable debe indicarlo en algún lugar de la carcasa o en las instrucciones. Hay módulos con interruptores y puentes que se pueden utilizar para cambiar la dirección, pero... si los dispositivos son ridículamente baratos, es posible que el fabricante no se moleste en ocuparse de ese detalle, por lo que tendrá que determinarlo usted mismo.
En total, se pueden utilizar hasta 127 direcciones en el bus: 119 para dispositivos y 8 direcciones de servicio. La comunicación se realiza en estas direcciones. Hay uno principal, también conocido como Maestro, y hay un esclavo, también conocido como Esclavo: los Maestros preguntan, los esclavos responden, todo es simple.
Dado que nuestra pantalla OLED utiliza el protocolo de comunicación I2C y es posible que no se especifique la dirección, intentaremos averiguar esta dirección nosotros mismos.
Puedes hacer esto cargando un breve boceto en tu placa Arduino con el OLED conectado. ¡PERO!
¡No se apresure a cargar el boceto en Arduino de inmediato! Primero descarguemos los "controladores", es decir. conectemos las bibliotecas, y para hacer esto iremos inmediatamente al “Paso No. 5”, para luego regresar y continuar.
Descargue CODE Finder_I2C_Hex_Address.ino, cárguelo en Arduino.
Abra “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 dirección 0x3F.
Para que todo funcione correctamente y no tengas que reinventar la rueda, necesitas 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 incluir estas bibliotecas siguiendo estos pasos.
Con las últimas versiones de las bibliotecas, mi pantalla funcionaba torcidamente, esto puede deberse, por supuesto, a la curvatura de mis manos, pero después de instalar las primeras versiones de estas bibliotecas, todo empezó a verse suave y hermoso. Por alguna razón, me vienen a la mente las líneas de Pushkin:
...y la experiencia, hija de errores difíciles,
y genio, amigo de las paradojas.
Otra forma de instalar bibliotecas es buscarlas, descargarlas e instalarlas usted mismo.
Por ejemplo de Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Estas son las mismas bibliotecas de Adafruit, pero se pueden buscar bibliotecas similares fácilmente en los motores de búsqueda, a petición de OLED I2C. Muchos entusiastas escriben bibliotecas “para ellos mismos” y luego las publican en la web. Depende de usted qué biblioteca utilizar.
Para que la pantalla muestre letras rusas, también se necesitan bibliotecas especiales, pero este es un tema aparte para un artículo aparte.
Una vez instaladas las bibliotecas, puede volver al paso 4 y finalmente averiguar la dirección hexadecimal de su pantalla.
Para comprobar si todo funciona como se esperaba, ejecute el ejemplo de prueba desde ArduinoIDE.
Para esto:
Vaya a ARCHIVO > EJEMPLOS > SSD 1306 > Seleccione 128x64 i2c
Si obtiene un "Error", intente seleccionar SSD 1306 > 128x32 i2c.
Si el "Error" vuelve a ocurrir, 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 vuelve a ocurrir, puede intentar editar el archivo Adafruit_SSD1306.h, que se encuentra en la carpeta de bibliotecas de Arduino.
Abra el archivo Adafruit_SSD1306.h en un editor de texto y busque las líneas:
Descomentar la línea:
Debe tener un aspecto como este:
Si el error vuelve a ocurrir, deberá verificar las conexiones correctas.
Una vez que se complete la descarga, verá una animación de prueba en la pantalla, lo que significa que ha configurado correctamente su pantalla OLED.
Cuando hayas disfrutado plenamente de esta animación, podrás pasar al siguiente paso.
Para escribir su propio mensaje, primero cree un nuevo boceto en el entorno de programación ArduinoIDE.
En la cabecera incluimos 4 bibliotecas:
Luego escribimos el protocolo de reinicio:
En VOID SETUP indicamos la dirección hexadecimal de nuestro display 0x3C, la cual aprendimos en el “Paso No. 4”.
Luego, inicializamos la pantalla y la limpiamos:
A continuación, en VOID LOOP escribimos el código principal, es decir, nuestro mensaje que queremos mostrar en el display.
Para hacer esto, describimos el tamaño del texto, el color del texto, la posición del cursor y, finalmente, mostramos el mensaje usando el comando println:
Al final no olvides escribir pantalla.pantallapara que la imagen se muestre en la pantalla, de lo contrario obtendrá un vacío.
Si hiciste todo correctamente, aparecerá un mensaje en las pantallas.
Aquí está el CÓDIGO Starting_with_Arduino_OLED.ino de nuestro programa:
¡Hola! Como aficionado a la electrónica, estoy seguro de que todo lo que hacemos (juguetes electrónicos, productos caseros o grandes proyectos) es por curiosidad y pereza. La curiosidad se esfuerza por comprender y comprender lo vasto, lo desconocido, por descubrir cómo funciona allí, qué hace, cómo se mueve. Y la pereza inventa algo que se le ocurre, para no levantarse, no acercarse, no levantar, no ensuciarse ni nada importante.
Dado que ver información es mejor que descubrir qué está a punto de suceder en nuestro dispositivo, qué ya sucedió o está sucediendo, definitivamente querremos recibir esta información tan útil de nuestros microcontroladores, sensores u otros dispositivos. Y en cualquier caso quiero recibir cualquier mensaje, como preguntas, advertencias, recordatorios, emoticonos, estrellas, corazones y similares.
Para aquellos que también tienen un deseo similar, aquí hay una breve guía para conectar y probar pantallas OLED pequeñas y económicas.
A continuación, hablaremos de uno de los modelos de pantalla OLED más disponibles para los radioaficionados, controlado 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 proyectos caseros.
Paso 1: Conceptos básicos
Lo conectaremos a Arduino UNO/NANO, y también lo programaremos a través de Arduino.
- OLED es un diodo emisor de luz orgánico, es decir, un dispositivo semiconductor fabricado a partir de compuestos orgánicos que comienza a emitir luz cuando una corriente eléctrica lo atraviesa.
- ARDUINO es una plataforma para la formación y la automatización de edificios y sistemas de robótica.
- ArduinoIDE: entorno de desarrollo. Este es un programa de programación Arduino gratuito.
- I2C – Circuitos interintegrados, línea de comunicación entre chips.
- Sketch, también conocido como código, también conocido como programa: terminología de Arduino.
Siga las instrucciones para comprender cómo conectar y configurar correctamente la pantalla OLED al Arduino y cómo mostrar un mensaje personalizado en su pantalla.
Hacemos todo paso a paso.
Paso 2: Accesorios
Sólo necesitamos cuatro cosas:
- 1. La pantalla OLED en sí es de 0,96” (puedes comprarla en Aliexpress o Ebay, es larga, ¡pero barata!).
- 2. Arduino UNO/Nano (mismo lugar que la pantalla).
- 3. Cables de conexión (ibid.).
- 4. Computadora o laptop con ArduinoIDE instalado.
En general, comprar piezas para varios proyectos en Aliexpress y Ebay es algo genial, mientras trabajas en un proyecto, las piezas para otro ya están en camino. Lo principal es no olvidarse de realizar un pedido.
Paso 3: Conexión de la pantalla
La pantalla está controlada por un chip SSD1306 que admite cinco protocolos de comunicación, uno de los cuales es I2C. Los datos que utilizan este protocolo se transmiten a través de solo dos cables, y cuantos menos cables haya en la carcasa, mejor, por lo que nos conviene bastante.¡Pero! Hay módulos con protocolo SPI e incluso con conmutación de protocolo, así que tenga cuidado al adquirir este módulo.
Pines utilizados:
Pantalla OLED: SCL/SCK (reloj) y SDA (datos), potencia “más” (VCC) y potencia “menos” (GND).
Pines utilizados:
Arduino UNO - SCL/SCK en A5 y SSD en A4, potencia “Plus” (+5V) y potencia “Minus” (GND).
Conectando la pantalla a Arduino:
- Vcc - 5V
- Tierra - Tierra
- SDA-A4
- SCL-A5
Paso 4: Escáner I2C
Cada dispositivo en el bus I2C tiene una dirección hexadecimal, no se puede cambiar, está cableado, cada fabricante responsable debe indicarlo en algún lugar de la carcasa o en las instrucciones. Hay módulos con interruptores y puentes que se pueden utilizar para cambiar la dirección, pero... si los dispositivos son ridículamente baratos, es posible que el fabricante no se moleste en ocuparse de ese detalle, por lo que tendrá que determinarlo usted mismo.
En total, se pueden utilizar hasta 127 direcciones en el bus: 119 para dispositivos y 8 direcciones de servicio. La comunicación se realiza en estas direcciones. Hay uno principal, también conocido como Maestro, y hay un esclavo, también conocido como Esclavo: los Maestros preguntan, los esclavos responden, todo es simple.
Dado que nuestra pantalla OLED utiliza el protocolo de comunicación I2C y es posible que no se especifique la dirección, intentaremos averiguar esta dirección nosotros mismos.
Puedes hacer esto cargando un breve boceto en tu placa Arduino con el OLED conectado. ¡PERO!
¡No se apresure a cargar el boceto en Arduino de inmediato! Primero descarguemos los "controladores", es decir. conectemos las bibliotecas, y para hacer esto iremos inmediatamente al “Paso No. 5”, para luego regresar y continuar.
Paso 4: Continuación:
Descargue CODE Finder_I2C_Hex_Address.ino, cárguelo en Arduino.
Abra “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 dirección 0x3F.
Paso 5: descargue y conecte bibliotecas
Para que todo funcione correctamente y no tengas que reinventar la rueda, necesitas 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 incluir estas bibliotecas siguiendo estos pasos.
- 1. En ArduinoIDE, vaya al menú Bosquejo.
- 2. Seleccione "Incluir bibliotecas".
- 3.Seleccione "Administrar bibliotecas".
- 4. Busque ADAFRUIT GFX e instálelos.
- 5. Busque ADAFRUIT SSD1306 e instálelos.
Con las últimas versiones de las bibliotecas, mi pantalla funcionaba torcidamente, esto puede deberse, por supuesto, a la curvatura de mis manos, pero después de instalar las primeras versiones de estas bibliotecas, todo empezó a verse suave y hermoso. Por alguna razón, me vienen a la mente las líneas de Pushkin:
...y la experiencia, hija de errores difíciles,
y genio, amigo de las paradojas.
Otra forma de instalar bibliotecas es buscarlas, descargarlas e instalarlas usted mismo.
Por ejemplo de Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Estas son las mismas bibliotecas de Adafruit, pero se pueden buscar bibliotecas similares fácilmente en los motores de búsqueda, a petición de OLED I2C. Muchos entusiastas escriben bibliotecas “para ellos mismos” y luego las publican en la web. Depende de usted qué biblioteca utilizar.
Para que la pantalla muestre letras rusas, también se necesitan bibliotecas especiales, pero este es un tema aparte para un artículo aparte.
Una vez instaladas las bibliotecas, puede volver al paso 4 y finalmente averiguar la dirección hexadecimal de su pantalla.
Paso 6: Prueba de visualización
Para comprobar si todo funciona como se esperaba, ejecute el ejemplo de prueba desde ArduinoIDE.
Para esto:
Vaya a ARCHIVO > EJEMPLOS > SSD 1306 > Seleccione 128x64 i2c
Si obtiene un "Error", intente seleccionar SSD 1306 > 128x32 i2c.
Si el "Error" vuelve a ocurrir, 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 vuelve a ocurrir, puede intentar editar el archivo Adafruit_SSD1306.h, que se encuentra en la carpeta de bibliotecas de Arduino.
Abra el archivo Adafruit_SSD1306.h en un editor de texto y busque las líneas:
//#definir SSD1306_128_64
#definir SSD1306_128_32
// #definir SSD1306_96_16
Descomentar la línea:
#definir SSD1306_128_64.
Debe tener un aspecto como este:
#definir SSD1306_128_64
//#definir SSD1306_128_32
// #definir SSD1306_96_16
Si el error vuelve a ocurrir, deberá verificar las conexiones correctas.
Una vez que se complete la descarga, verá una animación de prueba en la pantalla, lo que significa que ha configurado correctamente su pantalla OLED.
Cuando hayas disfrutado plenamente de esta animación, podrás pasar al siguiente paso.
Paso 7: escribe tu propio mensaje
Para escribir su propio mensaje, primero cree un nuevo boceto en el entorno de programación ArduinoIDE.
En la cabecera incluimos 4 bibliotecas:
#incluir <SPI.h>
#incluir <Cable.h>
#incluir <Adafruit_GFX.h>
#incluir <Adafruit_SSD1306.h>
Luego escribimos el protocolo de reinicio:
#definir OLED_RESET 4
Pantalla Adafruit_SSD1306 (OLED_RESET);
En VOID SETUP indicamos la dirección hexadecimal de nuestro display 0x3C, la cual aprendimos en el “Paso No. 4”.
Luego, inicializamos la pantalla y la limpiamos:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
A continuación, en VOID LOOP escribimos el código principal, es decir, nuestro mensaje que queremos mostrar en el display.
Para hacer esto, describimos el tamaño del texto, el color del texto, la posición del cursor y, finalmente, mostramos el mensaje usando el comando println:
display.setTextSize(2);
display.setTextColor(BLANCO);
display.setCursor(0,0);
display.println("¡Bien hecho!");
mostrar.display();
Al final no olvides escribir pantalla.pantallapara que la imagen se muestre en la pantalla, de lo contrario obtendrá un vacío.
Si hiciste todo correctamente, aparecerá un mensaje en las pantallas.
Aquí está el CÓDIGO Starting_with_Arduino_OLED.ino de nuestro programa:
código postal
[946 b] (descargas: 4908)
Clases magistrales similares
Particularmente interesante
Comentarios (10)