Como fazer a interface do SSD1306 OLED com o Arduino usando SPI

SSD1306 é um driver de vídeo OLED popular. Dispositivos portáteis e vestíveis são as novas tendências. Pequenos monitores OLED são perfeitos para dispositivos compactos e portáteis. SSD1306 é um driver CMOS OLED/PLED de chip único. Ele pode gerenciar um display gráfico de matriz de pontos de 128×64. Ele foi projetado para controlar painéis OLED de cátodo comum. O chip possui vários recursos integrados, como controle de brilho de 256 etapas, RAM de exibição, oscilador e controle de contraste. Esses recursos integrados reduzem os componentes externos necessários e tornam o chip pronto para uso com qualquer tela OLED de resolução compatível.

SSD1306 OLED

Figura 1. Exemplo de SSD1306 OLED

SSD1306 é comumente usado em telas OLED monocromáticas com resolução de tela de até 128×64. Esses monitores são agora a melhor alternativa aos LCDs de caracteres convencionais. Comparados aos LCDs de caracteres, os monitores OLED SSD1306 são fáceis de interagir via I2C ou SPI e podem exibir muitos gráficos complexos, incluindo texto, imagens bitmap e animações. Comparando os preços, os pequenos displays OLED não são muito mais caros que os LCDs de caracteres. Em vez disso, os displays OLED são muito estéticos e compactos para uso em dispositivos de consumo portáteis e vestíveis. Por exemplo, para um smartwatch, os LCDs de caracteres não são adequados e os LCDs gráficos são bastante mais caros, mas um pequeno display OLED é perfeito para isso.

Neste tutorial, faremos a interface de um display OLED SSD1306 com o Arduino usando a interface SPI. Os monitores OLED baseados em chip SSD1306 podem ser conectados a um microcontrolador ou computador de placa única usando uma interface I2C, SPI ou paralela. Porém, as interfaces I2C e SPI são mais comumente expostas em módulos de exibição OLED.

Componentes necessários

  1. Arduino UNO x1
  2. Módulo OLED SSD1306 de 7 pinos x1
  3. Conectando fios ou fios de jumper

Sobre a tela OLED SSD1306

OLED significa Diodo Emissor de Luz Orgânico. Os displays OLED são semelhantes aos displays LED usados ​​em televisores e monitores. No entanto, esses monitores são compactos e adequados para uso em dispositivos vestíveis e portáteis. Existem muitos tipos de monitores OLED. Esses displays podem ser classificados de acordo com o tamanho, cor, número de pinos e IC do controlador. Os monitores OLED vêm em dois tamanhos comuns – 0,91″ com resolução de tela de 128×32 e 0,96″ com resolução de 128×64. A tela pode ser azul monocromática, branca monocromática ou amarelo-azul. O módulo de exibição OLED pode ter uma porta de 3/4 pinos apenas para a interface I2C ou uma interface de 7 pinos para SPI de 3 fios, SPI de 4 fios e interface I2C. SSD1306 e SSD1331 são os chips de driver de vídeo OLED mais populares. Qualquer módulo de display OLED possui o chip controlador integrado ao módulo.

Neste projeto, estamos usando um display OLED de 0,96 ″ com IC controlador SSD1306. O módulo possui tela Amarelo-Azul com resolução de tela 128×64. O módulo usado aqui possui uma interface de 7 pinos, permitindo a interface do módulo com qualquer microcontrolador ou SBC via SPI de 3 fios, SPI de 4 fios e interface I2C. A interface SPI de 4 fios é a opção de interface padrão no módulo de 7 pinos.

Como fazer a interface do SSD1306 OLED com o Arduino

Um módulo OLED de 7 pinos oferece todas as opções de interface, como SPI de 3 fios, SPI de 4 fios e I2C. O SPI de 4 fios é o modo de comunicação mais rápido com o OLED e também o padrão. O display OLED de 7 pinos possui a seguinte configuração de pinos.

Para fazer a interface do módulo com o Arduino (ou qualquer microcontrolador ou SBC), conecte os pinos GND e VCC/VDD ao terra e 5V de saída do Arduino, respectivamente. O OLED funciona com energia mínima, portanto não requer nenhuma fonte de alimentação externa. É importante observar que o OLED não acende sua retroiluminação apenas fornecendo energia. Nenhuma alteração no display OLED é perceptível até que ele seja programado corretamente. Os pinos D0, D1, RST, DC e CS podem ser conectados a qualquer GPIO. Um módulo de 6 pinos não possui Chip Select.

Os módulos OLED de 4 pinos oferecem apenas uma interface I2C para comunicação com eles. Possui a seguinte configuração de pinos.

Para fazer a interface do módulo de 4 pinos, conecte os pinos GND e VCC ao terra e 5V de saída do Arduino. Conecte os pinos D0 e D1 a qualquer GPIO.

Conexões de circuito

Neste projeto, um módulo OLED SSD1306 de 7 pinos é conectado ao Arduino UNO. O módulo é conectado ao Arduino da seguinte maneira.

Tela OLED SSD1306

Figura 3 e 4. Tela OLED SSD1306

Programando display OLED SSD1306 com Arduino

A biblioteca para interface do SSD1306 com o Arduino está disponível na Adafruit. Para encontrá-lo, navegue até o gerenciador de biblioteca do Arduino IDE, Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Procure SSD1306 e selecione a versão mais recente da biblioteca Adafruit SSD1306. Ele também baixará a biblioteca GFX como uma dependência.

Biblioteca Adafruit SSD1306 OLED Arduino

Figura 5. Instalando a biblioteca Adafruit SSD1306 OLED Arduino

Uma vez incluída, a biblioteca pode ser importada no código usando as seguintes linhas:

#incluir
#incluir

Os exemplos funcionais da biblioteca agora podem ser encontrados em Arquivo -> Exemplos -> Adafruit SSD1306.

A biblioteca fornece várias funções úteis. Algumas dessas funções usadas com frequência estão listadas abaixo.

Para converter qualquer imagem em bitmap para exibição no OLED SSD1306, você pode usar o link a seguir.

Esboço do Arduino

Resultado

(Link para vídeo de demonstração P15-DV)

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.