Conectar arduino uno a oled 0.96 i2c


Aprenderás a conectar un arduino uno a oled 0.96 por el protocolo i2c, tendrás información como el datasheet, circuito la librera de adafruit y un código de ejemplo

oscar Escrito por oscar 02 August 2023 843 0

Caracteristicas del oled

Nota: mas informacion la pueden encontrar en el datasheet del oled.

Coordenadas x y

x y dimenciones

Circuito

La conexión del circuito es sencilla, como el oled usa la interfaz I2C, solo es conectar los dos cables como se observa en la siguiente imagen.

Conectar arduino uno a oled i2c

Liberia

Para trabajar la pantalla oled 0.96 i2c, vamos a usar la librería de adafruit SSD1306 la cual se creo específicamente para esta pantalla, librería la podemos encontrar en:

Direccion i2c de oled 0.96 i2c

Uno de los parámetros necesarios para hacer funcionar la pantalla es la direccion i2c de esta misma, podemos encontrar esta direccion de dos formas.

1. Revisando por detras de la pantalla la configuración de las resistencias de dirección, dependiendo de donde están unidas sera el valor de la dirección i2c, veamos un ejemplo.

oled address

2. Otra forma es usar un scanner i2c para obtener la dirección, en Arduino i2c | CodigoElectronica tenemos un código el cual explica como usar el scanner y visualizar la direccion en varios módulos i2c.

Documentación de Adafruit_SSD1306

Podemos encontrar la documentación oficial en el siguiente enlace Adafruit SSD1306: Adafruit_SSD1306 Class Reference

Código de ejemplo

El siguiente código muestra un ejemplo de como usar la pantalla oled 0.96 i2c con arduino.

// 1
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// 2
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64 

// 3
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C

// 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  Serial.begin(9600);

  // 5
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }

  // 6
  display.display();
  display.clearDisplay();

  // 7
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.println(F("codigoelectronica"));
  display.display();
  
  delay(2000);
}

void loop() {
}

 

  1. Inicializamos las librerías, en este caso SPI y Wire para la comunicacion i2c; ademas de las librerías de Adafruit GFX, SSD1306.
  2. Definimos el ancho y alto de la pantalla para que la librería pueda calcular correctamente donde pintar.
  3. Definimos el pin de reset como (-1) indicando que es un reset por software y la direccion i2c del oled.
  4. Con Adafruit_SSD1306 display() inicializamos un objeto display para poder acceder a los métodos de la librería.
  5.  display.begin inicializa la librería
  6. display.clearDisplay limpia la pantalla.
  7. Imprimimos un mensaje
    1. setTextSize: proporciona el tamaño del texto.
    2. setTestColor: indica si los pixeles son blancos o negros.
    3. setCursor: indica la posicion en (x, y).
    4. println texto a imprimir.
    5. display: envía a la pantalla lo que esta pendiente de escribir.

Comentario

Debe aceptar antes de enviar