fbpx
ArduinoNovidade

Como utilizar o display OLED 128×64 gráfico 0.96″ I2C com Arduino

O display OLED é uma excelente ferramenta para criar interações entre o usuário e a máquina, permitindo a exibição de textos, números e até imagens, tudo controlado por um microcontrolador.

Figura 1: Display OLED 128×64

Embora seja compacto, o display OLED 128×64 oferece uma excelente resolução e, ao contrário de outros displays tradicionais, consome menos energia, pois não utiliza backlight.

Além disso, sua comunicação com os microcontroladores é facilitada pela tecnologia I2C, o que permite a transmissão de dados de forma eficiente e possibilita a criação de circuitos mais simples e econômicos.

O display possui 4 pinos: VCC, GND, SCL e SDA, conforme mostrado na Figura 2.

Pinos do Display OLED 128x64
Figura 2: Pinos do Display OLED 128×64

Cada pino tem a seguinte função:

  • VCC: Pino de alimentação do módulo. Deve ser conectado à uma fonte de alimentação entre 3 e 5 Volts;
  • GND: Pino de aterramento (0V);
  • SDA: Pino de dados serial I2C;
  • SCL: Pino de relógio I2C, responsável por sincronizar a troca de dados.

MATERIAIS NECESSÁRIOS:

1x Arduino UNO Atmega328;
1x Cabo USB Tipo A-B compatível com Arduino UNO;
1x Display Oled 128×64 gráfico I2C Serial 0.96”;
1x Protoboard;
Jumpers Macho x Macho.

ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES:

Inicialmente, certifique-se de que a sua placa Arduino esteja desligada. Em seguida, monte o circuito da Figura 3 utilizando a protoboard, jumpers, Arduino e o Display Gráfico 128×64.

Esquemático de Ligação entre o Arduino e o Display OLED 128x64
Figura 3: Esquemático de Ligação entre o Arduino e o Display OLED 128×64

Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:

  • O pino VCC do Display deve ser alimentado com o 5V do Arduino;
  • O pino GND do Display deve ser conectado ao pino GND do Arduino;
  • O pino SCL do Display deve ser conectado à porta analógica A5 do Arduino;
  • O pino SDA do Display deve ser conectado à porta analógica A4 do Arduino.

ELABORANDO O CÓDIGO:

Neste projeto, faremos uso da biblioteca “Adafruit_SSD1306.h” para facilitar a passagem de dados para o display e a biblioteca “Wire.h” para realizar a comunicação I2C entre o Arduino e display.

A biblioteca “Adafruit_SSD1306.h”” pode ser instalada na própria Arduino IDE, por meio do atalho “Ctrl + Shift + I”, que irá abrir o gerenciador de biblioteca, então basta pesquisar por Adafruit_SSD1306” e clicar em instalar, conforme mostrado na Figura 4.

Instalação da biblioteca Adafruit_SSD1306.h na Arduino IDE
Figura 4: Instalação da biblioteca Adafruit_SSD1306.h na Arduino IDE

Após isto, vamos entender a lógica de programação:

  1. Incluir as bibliotecas: Iniciaremos o código incluindo as bibliotecas “Adafruit_SSD1306.h” e “Wire.h”, por meio das instruções #include Adafruit_SSD1306.h > e #include <Wire.h>.
  1. Declarar o objeto que será utilizado para chamar as instruções da biblioteca “Adafruit_SSD1306.h”;
    Foi declarado o objeto displayLED, que será utilizado para chamar os comandos da biblioteca Adafruit_SSD1306.h.
  1. Iniciar o funcionamento das bibliotecas wire e Adafruit_SSD1306.h: Por meio das funções “Wire.begin()” e “displayLED.begin()” serão inicializados a biblioteca “wire” e a biblioteca “Adafruit_SSD1306.h.”, respectivamente.
  1. Definir propriedades da mensagem que será mostrada no display: Para configurar o texto que será mostrado em loop no display, devemos utilizar as seguintes funções da biblioteca Adafruit_SSD1306.h:
  • displayLED.setTextColor(): Função que define a cor das letras da mensagem;
  • displayLED.setTextSize(): Função que define o tamanho da fonte da mensagem;
  • displayLED.setCursor(): Função que define a coordenada do local onde a mensagem aparecerá no display;
  • displayLED.print(): Função que envia o texto que for escrito para o display, funciona de maneira semelhante ao Serial.print;
  • displayLED.display(): Função que confirma a escrita no display.

Ao final, o Sketch deste projeto ficará da seguinte maneira:

#include <Wire.h> //Inclusão da biblioteca wire
#include <Adafruit_SSD1306.h> //Inclusão da biblioteca Adafruit_SSD1306.h

Adafruit_SSD1306 displayLED; //Criação do objeto displayLED, que será chamado para realizar as intruções da biblioteca Adafruit_SSD1306.h

void setup() {
  Wire.begin(); //Inicia a biblioteca Wire
  displayLED.begin(); //Inicia o display OLED
  displayLED.clearDisplay(); //Limpa as mensagens do display
}

void loop() {
  displayLED.setTextColor(WHITE); //Define a cor das letras, mas no nosso exemplo o display é Azul, então independente da cor que for colocada neste campo as letras ficarão azul. Por padrão deixe WHITE.
  displayLED.setTextSize(1); //Define o tamanho da letra
  displayLED.setCursor(10, 12); //Define o local(Horizontal e vertical), de onde irá aparecer a mensagem no display.
  displayLED.print("Blog da Robotica");//Envia mensagem para o display
  displayLED.display();//Confirma a escrita no display
  
  delay(1500); //Tempo de espera de 1500 milissegundos
  
  displayLED.clearDisplay(); //Limpa a mensagem do display
  displayLED.setCursor(7, 12); //Define um novo local para a próxima mensagem do display
  displayLED.print("Blogdarobotica.com"); //Envia mensagem para o display
  displayLED.display(); //Confirma a escrita no display
  
  delay(1500); //Tempo de espera de 1500 milissegundos
  
  displayLED.clearDisplay(); //Limpa a mensagem do display
}

Vídeo Demonstrativo – Display OLED 128×64 com Arduino

Espero que tenha gostado deste tutorial. Em caso de dúvidas deixe seu comentário abaixo.

Atenciosamente, Kleber Bastos

Bacharel em Engenharia de Computação. Um dos criadores do Blog da Robótica. Faz parte da equipe Casa da Robótica desde 2017. Apaixonado por tecnologias e pelas “loucuras” que é possível criar usando microcontroladores e impressoras 3D. Ex-BBB, mas isso é uma longa história... que poderá ser contada posteriormente.

Kleber Bastos

Bacharel em Engenharia de Computação. Um dos criadores do Blog da Robótica. Faz parte da equipe Casa da Robótica desde 2017. Apaixonado por tecnologias e pelas “loucuras” que é possível criar usando microcontroladores e impressoras 3D. Ex-BBB, mas isso é uma longa história... que poderá ser contada posteriormente.

Deixe uma pergunta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.