• COMPONENTE
    DISPLAY OLED

O que é?

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

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

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

LISTA DOS COMPONENTES

  • 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

O código de exemplo abaixo é referente ao esquema ilustrado acima.

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