OLED basado en I2C (132X64) en interfaz con Arduino Uno

Para ver los datos en la pantalla que buena visualización de píxeles OLED es mejor elegir, viene en dos píxeles 128 X 64 y 128 X 32 ambos tienen resultados eficientes

En este tutorial, la interfaz OLED del protocolo basado en I2C con Arduino Uno incluye código, un diagrama de conexión y una lista de componentes.

Cómo funciona OLED

OLED es una tecnología de semiconductores de estado sólido compuesta por películas delgadas de moléculas orgánicas que emiten luz cuando se les aplica electricidad. El emisor OLED es la parte más importante de una pantalla OLED; La estructura básica de un OLED es un sándwich de capa emisiva entre un cátodo (emisor de electrones) y un ánodo (receptor de electrones).

  • OLED es de tamaño muy delgado y más liviano que otros componentes de visualización;
  • Tiene un amplio campo de visión (hasta 160 grados incluso con luz intensa);
  • Esta pantalla consume menos energía que las pantallas LED y LCD tradicionales;
  • Tiene una pantalla colorida con un aspecto atractivo para complacer a los ojos y que sea fácil de usar.
  • OLED

    Principio de funcionamiento de OLED

    Cuando aplica un voltaje a OLED, cada uno de los dos electrodos, que tienen una carga eléctrica positiva y negativa, genera huecos y electrones. Las moléculas orgánicas hacen que la capa emisiva se transforme en un estado de alta energía conocido como «excitación» cuando se recombinan en la capa emisiva. Cuando la capa recupera su estabilidad anterior, emite luz.

    Comparación de OLED con otras pantallas

  • Los OLED tienen capas orgánicas de plástico que son más delgadas, livianas y flexibles que las capas cristalinas que se encuentran en los LED y LCD.
  • Debido a que las capas orgánicas son más delgadas, la pantalla es más brillante que los LED.
    Las pantallas LCD no requieren retroiluminación.
  • Mucho menos consumo de energía, lo cual es significativo para los dispositivos que funcionan con baterías.
  • Los OLED son fáciles de fabricar a mayor escala.
  • Tiene un ángulo de visión de 160 grados.
  • ¿Lo que necesitamos?

    Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

    Consulta precios de hardware en los siguientes enlaces:

    Procedimiento paso a paso

    Diagrama de cableado de OLED con Arduino

    Como se muestra en la imagen a continuación, el módulo se conecta con Arduino Uno. Siga el cableado que se presenta en la imagen, siga el Tutorial sobre Arduino Uno Pinout para realizar las conexiones.

    Sr. Nombre del pin OLED Nombre del pin de arduino
    1 TIERRA TIERRA
    2 CCV 5V
    3 SCL A5
    4 ASD A4

    Conexiones pines Diagrama de cableado

    Obtenga OLED.ino, biblioteca y explicación del código

    Conecte su PC a Arduino y abra Arduino IDE. Para los primeros pasos, puede consultar el tutorial Conexión de PC con Windows con Arduino. Puede obtener el código .ino y las bibliotecas desde mi área de descarga con el siguiente enlace:

    oled.ino

    También necesita instalar la siguiente biblioteca, de acuerdo con mi tutorial Instalar bibliotecas de Arduino: métodos para agregar bibliotecas con el IDE de Arduino. Obtenga los archivos zip de los siguientes enlaces o agréguelos de las bibliotecas disponibles en su IDE de Arduino:

    adafruit-gfx-library-master.zip

    adafruit-ssd1306-master.zip

    Desde el administrador de la biblioteca Arduino IDE, puede encontrar ambas bibliotecas utilizando el campo de búsqueda:

    biblioteca ssd1306 biblioteca gfx

    Este OLED funciona con el protocolo I2C, por lo que la biblioteca I2C incluye pines relacionados que están definidos. En Arduino Uno, los pines I2C son A4 y A5.

    Sección 1: Antes de la instalación, la Biblioteca para I2C se utiliza para inicializar la comunicación I2C. Luego se incluye el gráfico GFX y el controlador de la biblioteca SSD1306. El píxel de OLED está configurado en 128 X 64, mientras que algunos OLED contienen reinicio, por lo que incluye. En nuestro caso, no necesitamos el pin de reinicio. La dirección I2C del OLED se proporciona para la comunicación.

    #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin) #define SCREEN_ADDRESS 0x3D //< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); 

    Sección 2: Sección de configuración

    El monitor serie se inicializa a una velocidad de 9600 baudios. Y OLED se inicializa en caso de que no se comunique, el código se atascará en esa línea. La función display.display () se utiliza para mostrar los datos en la pantalla. Los datos ya se envían al OLED a través del comando de display.drawPixel, display.invertDisplay. Todos los comandos se ejecutan en visualización cuando se envía el comando display.display. En pocas palabras, los datos permanecen almacenados en el registro del OLED hasta que se envía display.display para realizar la acción.

    void setup() {   Serial.begin(9600);   // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally   if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {     Serial.println(F("OLED not Found, Check Connections"));     for (;;); // Don't proceed, loop forever   }   display.display();   delay(2000); // Pause for 2 seconds      display.clearDisplay();   display.drawPixel(10, 10, SSD1306_WHITE);   // Draw a single pixel in white   display.display();   delay(2000);   display.invertDisplay(true);                // Invert and restore display, pausing in-between   delay(1000);   display.invertDisplay(false);   delay(1000); }

    Sección 3: Bucle

    En esta sección, se realiza una rutina continua, display.clearDisplay() borra los datos de la pantalla. display.setTextSize(2), esto se usa para cambiar el tamaño de fuente del texto, estos vienen en valores flotantes enteros que no están permitidos, 1,2,3,4. Display.textcolor controla el color del texto, hay 128X64 píxeles en el OLED. por lo que podemos establecer el desplazamiento en un máximo de (128,64). display.println utiliza para mostrar la cadena. pantalla, pantalla imprime los datos en la pantalla.

    void loop() {   display.clearDisplay();   display.setTextSize(2); // Draw 2X-scale text   display.setTextColor(SSD1306_WHITE);   display.setCursor(10, 0);   display.println(F("Mytest"));   display.display();      // Show initial text   delay(1000); }