• COMPONENTE

    DISPLAY OLED

    Display OLED

O que é um módulo OLED?

O display OLED SSD1306 é um monitor monocolor extremamente econômico comparado a outras telas. Com este display, é possível desenhar formas e exibir textos e imagens de bitmap. A conexão de dados deste modelo é I2C, mas existem outros monitores OLED que se comunicam usando a comunicação SPI.

O modelo em questão possui 0,96 polegadas com 128×64 pixels e não requer luz de fundo, o que resulta em um contraste muito agradável em ambientes escuros. Possui apenas quatro pinos, dois para alimentação (VCC e GND) e dois para dados (relógio serial SCL e serial data SDA), tornando a fiação muito simples.

O módulo possui um poderoso controlador de driver CMOS OLED de chip único - SSD1306. Ele pode se comunicar com o microcontrolador de várias maneiras, incluindo I2C e SPI. O SPI é geralmente mais rápido que o I2C, mas requer mais pinos de E/S. Enquanto o I2C requer apenas dois pinos e pode ser compartilhado com outros periféricos I2C. É uma troca entre pinos e velocidade.

OLed arduino
Pinos OLed arduino

Atenção

Dependendo do modelo e fabricante os pinos de alimentação do OLED podem estar em ordem diferente, portanto verifique sempre antes de ligá-lo.

Montagem dos componentes

Logo abaixo temos a lista de componentes utilizado neste exemplo, e sua ligação com o Arduino.

  • 1 x Arduino Uno SMD
  • 1 x Cabo USB para comunicação
  • 1 x Protoboard 400 pontos
  • 1 x Display OLED 0,96"
  • 4 x Jumpers macho/macho
Esquema montagem oled arduino

Código exemplo

Abaixo temos um código exemplo para testar o display, fazendo aparecer o texto digitado em diferentes posições.

IDE Arduino
//inclusao das bibliotecas necessarias
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display = Adafruit_SSD1306(); //objeto tipo Adafruit_SSD1306

void setup(){
Wire.begin(); //inicia com a biblioteca
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //inicia o display com endereço I2C 0x3C
display.setTextColor(WHITE); //define cor 
display.setTextSize(1); //define o tamanho da fonte
display.clearDisplay(); //limpa as informações do display
}

void loop() {
display.setCursor(20,20); //posição do texto no display
display.print("Escreva aqui seu nome"); //escreve o texto no display
display.display(); //permite a mudança de texto no display
delay(1000); //intervalo de 1 segundo
display.clearDisplay(); //limpa o texto do display
display.setCursor(10,10); //posiçao do texto no display
display.print("Escreva aqui seu nome"); //escreve o texto no display
display.display(); //permite a mudança de texto no display
delay(1000); //intervalo de 1 segundo
display.clearDisplay(); //limpa o texto do display
display.setCursor(5,1); //posiçao do texto no display
display.print("Escreva aqui seu nome"); //escreve o texto no display
display.display(); //permite a mudança de texto no display
delay(1000); //intervalo de 1 segundo
display.clearDisplay(); //limpa o texto do display
}
IDE Arduino