Skip to content

Tutorial completo de instalação e utilização do display PMOD OLED RGB/SSD1331.

Notifications You must be signed in to change notification settings

lsa-pucrs/Tutorial-PMOD-OLED-RGB-SSD1331

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Tutorial PMOD OLED RGB/SSD1331

Visão Geral da Tela PMOD OLED RGB/SSD1331

A PMOD OLED RGB/SSD1331 é uma controladora para telas de Diodo Orgânico Emissor de Luz (OLED) coloridas. Diferente das telas de LCD, as telas OLED não necessitam de uma luz de fundo (backlight), pois cada pixel emite sua própria luz. Isso resulta em um contraste superior, pretos verdadeiramente pretos e um menor consumo de energia. O modelo em questão é uma tela RGB, o que significa que ela é capaz de exibir uma vasta gama de cores.

image

Principais Características:

  • Resolução: Geralmente 96x64 pixels.
  • Cores: 65.536 cores (16-bit).
  • Interface de Comunicação: SPI (Serial Peripheral Interface), um protocolo de comunicação serial rápido.
  • Tensão de Operação: Varia conforme o módulo, mas geralmente opera com 3.3V ou 5V. É crucial verificar a especificação do seu módulo.

Itens Necessários

Para seguir este tutorial, você precisará dos seguintes componentes:

  • Tela PMOD OLED RGB/SSD1331: O componente principal.
  • Microcontrolador: Recomendamos o Arduino Uno por ser extremamente popular entre iniciantes e possuir uma vasta documentação e suporte da comunidade. Um ESP32 também é uma ótima opção, mas este tutorial focará no Arduino Uno.
  • Protoboard (Matriz de Contatos): Para montar o circuito sem a necessidade de solda.
  • Jumpers (Fios Macho-Macho e Macho-Fêmea): Para realizar as conexões entre a tela e o Arduino.
  • Cabo USB: Para programar o Arduino e alimentá-lo.
  • Computador com a IDE do Arduino instalada: A IDE do Arduino pode ser baixada gratuitamente no site oficial do Arduino.

Passo 1: Entendendo os Pinos da Tela PMOD OLED RGB/SSD1331

Os módulos com a tela PMOD OLED RGB/SSD1331 geralmente possuem 7 pinos. A nomenclatura pode variar um pouco, mas a função é a mesma:

  • GND: Pino de aterramento.
  • VCC: Pino de alimentação (3.3V ou 5V).
  • SCL, SCK ou CLK: Pino do Clock do SPI.
  • SDA, MOSI ou DIN: Pino de Dados do SPI (Master Out Slave In).
  • RES ou RST: Pino de Reset.
  • DC, A0 ou D/C: Pino de seleção entre Dados e Comando.
  • CS ou SCE: Pino de Chip Select (Seleção de Chip).

Passo 2: Conectando a Tela PMOD OLED RGB/SSD1331 ao Arduino Uno

A conexão será feita utilizando a interface SPI do Arduino.

Observação Importante sobre a Tensão: O Arduino Uno opera com lógica de 5V, enquanto a tela PMOD OLED RGB/SSD1331 geralmente opera com lógica de 3.3V. Conectar diretamente os pinos de dados do Arduino (5V) na tela (3.3V) pode danificá-la a longo prazo. O ideal é usar um conversor de nível lógico. No entanto, para simplificar este tutorial inicial, muitos utilizam resistores para criar um divisor de tensão, o que é uma solução aceitável para aprendizado. A conexão de VCC, no entanto, deve respeitar a tensão do módulo (verifique se ele possui um regulador de tensão integrado que suporte 5V). Se o seu módulo for estritamente 3.3V, conecte o VCC ao pino 3.3V do Arduino.

Pino da Tela PMOD OLED RGB/SSD1331 Conexão no Arduino Uno
GND GND
VCC 5V (ou 3.3V, verifique seu módulo)
SCL/CLK Pino Digital 13 (SCK)
SDA/MOSI Pino Digital 11 (MOSI)
RES/RST Pino Digital 9
DC Pino Digital 8
CS Pino Digital 10 (SS)

Diagrama de Conexão:

  TELA PMOD OLED RGB/SSD1331 [cite: 41]            ARDUINO UNO [cite: 42]
     GND [cite: 43] ------------------ GND [cite: 44]
     VCC [cite: 45] ------------------ 5V [cite: 46]
     SCL [cite: 47] ------------------ Pino 13 [cite: 48]
     SDA [cite: 49] ------------------ Pino 11 [cite: 50]
     RES [cite: 51] ------------------ Pino 9 [cite: 52]
     DC  [cite: 53] ------------------ Pino 8 [cite: 54]
     CS  [cite: 55] ------------------ Pino 10 [cite: 56]

Passo 3: Instalando as Bibliotecas Necessárias

Para controlar a tela de forma simples, utilizaremos duas bibliotecas da Adafruit: a Adafruit GFX Library e a Adafruit SSD1331 Library.

  1. Abra a IDE do Arduino.
  2. Vá em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas....
  3. Na barra de pesquisa, digite Adafruit GFX. Encontre a biblioteca Adafruit GFX Library by Adafruit e clique em Instalar.
  4. Agora, na mesma barra de pesquisa, digite Adafruit SSD1331. Encontre a biblioteca Adafruit SSD1331 OLED Driver Library by Adafruit e clique em Instalar.
  5. Quando for solicitado a instalação de dependências (como a Adafruit BusIO), clique em Install all.

Passo 4: Programando o Arduino

Com as bibliotecas instaladas e o hardware conectado, estamos prontos para enviar nosso primeiro código para o Arduino. Este código de exemplo irá inicializar a tela e demonstrar como desenhar textos, linhas, retângulos e círculos coloridos.

Copie e cole o seguinte código na sua IDE do Arduino:

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h> 

// Definição dos pinos de conexão com a tela 
#define sck 13 
#define mosi 11 
#define cs 10 
#define rst 9 
#define dc 8 

// Inicializa a biblioteca da Adafruit com os pinos definidos 
Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst);

// Definição de algumas cores em formato RGB 565 
#define BLACK   0x0000 
#define BLUE    0x001F 
#define RED     0xF800 
#define GREEN   0x07E0 
#define CYAN    0x07FF 
#define MAGENTA 0xF81F 
#define YELLOW  0xFFE0
#define WHITE   0xFFFF 

void setup() { 
  // Inicia a comunicação serial para debug (opcional) 
  Serial.begin(9600); 
  
  // Inicia a tela 
  display.begin(); 

  Serial.println("Teste da tela OLED RGB SSD1331"); 

  // Limpa a tela com a cor preta 
  display.fillScreen(BLACK); 
  delay(500); 

  // Define o tamanho e a cor do texto 
  display.setTextSize(1); 
  display.setTextColor(WHITE); 
  
  // Posiciona o cursor e escreve um texto 
  display.setCursor(0, 0); 
  display.println("Ola, Mundo!"); 
  display.setTextColor(YELLOW); 
  display.println("Teste de Cores"); 
  delay(2000); 

  // Desenha algumas formas geométricas 
  testdrawline(); 
  delay(1000); 
  
  testdrawrect(); 
  delay(1000); 
  
  testfillrect(); 
  delay(1000); 
  
  testdrawcircle(); 
  delay(1000); 
  
  testfillcircle(); 
  delay(1000); 
}

void loop() {
  // O código no loop será executado repetidamente 
  // Vamos fazer um efeito de inversão de cores 
  display.invertDisplay(true); 
  delay(500); 
  display.invertDisplay(false); 
  delay(500); 
}

void testdrawline() { 
  for (int16_t i=0; i<display.width(); i+=4) { 
    display.drawLine(0, 0, i, display.height()-1, RED); 
    delay(10); 
  }
  for (int16_t i=0; i<display.height(); i+=4) { 
    display.drawLine(0, 0, display.width()-1, i, GREEN); 
    delay(10); 
  }
  delay(500); 
}

void testdrawrect() { 
  display.drawRect(display.width()/2-10, display.height()/2-10, 20, 20, BLUE); 
}

void testfillrect() { 
  display.fillRect(display.width()/2-5, display.height()/2-5, 10, 10, MAGENTA); 
}

void testdrawcircle() { 
  display.drawCircle(display.width()/2, display.height()/2, 20, CYAN); 
}

void testfillcircle() { 
  display.fillCircle(display.width()/2, display.height()/2, 10, YELLOW); 
}

Passo 5: Enviando o Código e Vendo a Mágica Acontecer

  1. Conecte o seu Arduino Uno ao computador com o cabo USB.
  2. Na IDE do Arduino, vá em Ferramentas > Placa e selecione "Arduino Uno".
  3. Em Ferramentas > Porta, selecione a porta COM à qual o seu Arduino está conectado.
  4. Clique no botão de Carregar (a seta para a direita) para compilar e enviar o código para o Arduino.

Se tudo foi conectado corretamente e o código for carregado com sucesso, sua tela PMOD OLED RGB/SSD1331 deverá ganhar vida, exibindo "Ola, Mundo!", "Teste de Cores" e uma sequência de formas geométricas coloridas.

Solução de Problemas Comuns

A tela não liga:

  • Verifique todas as conexões, especialmente os pinos VCC e GND.
  • Certifique-se de que a porta COM correta está selecionada na IDE do Arduino.
  • Tente alimentar o módulo com 3.3V do Arduino em vez de 5V, e vice-versa, mas sempre com cuidado para não danificar o componente.

A tela exibe apenas "lixo" ou pixels aleatórios:

  • Verifique a conexão dos pinos de dados (SCL, SDA, RES, DC, CS). Uma conexão frouxa pode causar esse problema.
  • A velocidade do SPI pode estar incorreta. A biblioteca da Adafruit geralmente lida com isso, mas verifique se não há interferência de outros dispositivos no mesmo barramento SPI.

O código não compila:

  • Certifique-se de que as bibliotecas Adafruit GFX e Adafruit SSD1331 foram instaladas corretamente.
  • Verifique se não há erros de digitação no código.

Alguns Links que podem ajudar:

About

Tutorial completo de instalação e utilização do display PMOD OLED RGB/SSD1331.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published