Hazlo tu mismo
Trucos para la vida, clases magistrales, consejos útiles, recetas.
hogar » Electrónica » Electrónica de bricolaje » Cómo conectar una pantalla OLED I2C a ARDUINO
Introducción: Introducción a la pantalla OLED I2C 128*64/128*32.
Cómo conectar la pantalla OLED I2C a ARDUINO

¡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.
Cómo conectar la pantalla OLED I2C a ARDUINO

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.

Cómo conectar la pantalla OLED I2C a ARDUINO

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.
Cómo conectar la pantalla OLED I2C a ARDUINO

Pines utilizados:
Pantalla OLED: SCL/SCK (reloj) y SDA (datos), potencia “más” (VCC) y potencia “menos” (GND).
Cómo conectar la pantalla OLED I2C a ARDUINO

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

Cómo conectar la pantalla OLED I2C a ARDUINO

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.
Cómo conectar la pantalla OLED I2C a ARDUINO

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.
Cómo conectar la pantalla OLED I2C a 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.
Cómo conectar la pantalla OLED I2C a ARDUINO

Aquí está el CÓDIGO Starting_with_Arduino_OLED.ino de nuestro programa:
código postal [946 b] (descargas: 4908)
regresar
Comentario
  • corbata de moñosonrisareírruborsonrienterelajado relajadosonrisa afectada
    ojos del corazónbeso_corazonbesos_ojos_cerradossonrojadoaliviadosatisfechosonrisa
    guiñolengua_pegada_guiñando_el_ojolengua_atrapada_ojos_cerradossonriendobesarlengua_pegadadurmiendo
    preocupadoceñudoangustiadoboca abiertahaciendo muecasconfundidocallado
    inexpresivono divertidosudor_sonrisasudordecepcionado_aliviadocansadopasivo
    decepcionadoaturdidotemerososudor fríoperseverarllorarsollozo
    alegríaasombradogritarCara cansadaenojadofuriatriunfo
    somnolientommmmascarillaGafas de solcara_mareadadiablillosonriente_imp
    cara_neutralsin bocainocente
4 menos uno =
Comentarios (10)
  1. tatoshka
    #1 tatoshka Huéspedes 14 noviembre 2018 21:18
    9
    ¡Gracias amigo! Este es mi primer boceto subido y mi introducción a Arduino. Aparte de parpadear Parpadear))
  2. Alisher
    #2 Alisher Huéspedes 28 julio 2019 19:35
    8
    ¿Dónde puedo descargar este código Finder_I2C_Hex_Address.ino?
    1. Alabama
      #3 Alabama Huéspedes 14 agosto 2019 12:51
      11
      Debajo de la imagen hay un enlace "Aquí está el CÓDIGO Starting_with_Arduino_OLED.ino de nuestro programa:"
  3. Alex
    #4 Alex Huéspedes 13 de noviembre de 2019 20:01
    9
    No VOID SETUP o VOID LOOP, sino void setup(); y bucle vacío(); El lenguaje C es un lenguaje que distingue entre mayúsculas y minúsculas.
  4. Invitado Alex
    #5 Invitado Alex Huéspedes 14 de enero de 2020 03:00
    6
    >Paso 4: ... en mi caso OLED con dirección 0x3F.
    y luego
    >En VOID SETUP... la dirección de nuestro display 0x3C, que aprendimos en el “Paso 4”.
    ¿Como es eso?
  5. Invitado Alex
    #6 Invitado Alex Huéspedes 14 enero 2020 03:10
    9
    ¡Gracias! Hice todo de acuerdo con las instrucciones del Atmega328 Pro Mini y verifiqué los 0,96". Ambos resultaron estar funcionando. Arduino IDE 1.8.10
  6. Lector
    #7 Lector Huéspedes 3 de marzo de 2020 21:50
    4
    Gracias, instructivo, ¡todo funciona!
  7. Ildar Xafizov
    #8 Ildar Xafizov Huéspedes 19 abril 2020 19:15
    5
    Tengo una pregunta. Hay 2 pantallas OLED idénticas a la tuya en la foto (segunda foto). ¿No puedo determinar qué puentes usar para cambiar la dirección?
  8. Máxima invitada
    #9 Máxima invitada Huéspedes 31 de octubre de 2020 18:53
    11
    Gracias por el artículo.Pero tengo un problema: los píxeles de las letras brillan entre sí y la fuente es más grande de lo que debería ser. Al parecer el Arduino no reconoce la resolución de la pantalla. Si alguien tiene el mismo problema, aquí le explicamos cómo solucionarlo:
    #define SCREEN_WIDTH 128 // Ancho de pantalla OLED, en píxeles
    #define SCREEN_HEIGHT 64 // Altura de la pantalla OLED, en píxeles
    Pantalla Adafruit_SSD1306 (ANCHO_PANTALLA, ALTO_PANTALLA, Cable, OLED_RESET);
  9. Dmitriy
    #10 Dmitriy Huéspedes 9 mayo 2021 19:35
    7
    ¡Gracias! No todo salió bien de inmediato. De hecho, la dirección en la pantalla era 128*64, no 0x3D, sino 0x3C. Y reorganicé las Bibliotecas “desde la mitad” de las versiones. No el último, porque... apareció un mensaje sobre el valor crítico de la memoria (tengo un Arduino Uno).

Cebolla morada encurtida (para canapés, ensaladas, hamburguesas y pilaf)

Dibujar una puesta de sol en el mar y decorar una puerta antigua | Hazlo tu mismo

Libro de deseos DIY para un niño | Hazlo tu mismo

Cómo desmontar y lubricar un portabrocas.

«Hazlo tú mismo, con tus propias manos.» - un sitio de interesantes productos caseros elaborados con materiales de desecho y artículos del hogar. Clases magistrales paso a paso con fotografías y descripciones, tecnologías, trucos: todo lo que un verdadero maestro o simplemente un artesano necesita para bordar. Manualidades de cualquier complejidad, una gran selección de direcciones e ideas para la creatividad.

Recomendamos leer

Códigos de error de la lavadora