Básico - Projeto 90

Controlando um display Oled SSD1306 - bibliotecas Adafruit

Objetivo

Neste projeto vamos mostrar como utilizar um display OLED SSD1306 com Arduino. No projeto mostraremos como instalar e utilizar o display para visualizar caracteres, símbolos e desenhos através das bibliotecas Adafruit_GFX e Adafruit_SSD1306 via comunicação I2C ou SPI. Utilizamos no projeto um Display OLED 0.96″ I2C Azul Amarelo com controlador SSD1306, mas você poderá utilizar qualquer display Oled SSD1306.

Atenção: Não utilize o display em locais molhados ou úmidos, pois a água pode danificar o componente.

Display OLED (Organic Light-Emitting Diode, ou Diodo Emissor de Luz Orgânico): Display gráfico com alto contraste, excelente nitidez, leve e muito econômico, pois como possui luz própria não precisa de backlight utilizado nas telas de LCD ou LED, por exemplo. Outra grande vantagem do display OLED é possibilidade de gerar imagens. Como desvantagens, o display possui uma vida útil menor (entre 10mil e 40mil horas de uso) e não deve ser utilizado em locais úmidos, pois a água danifica facilmente o componente.

Funcionamento: O display OLED é formado por camadas de material orgânico posicionadas entre eletrodos. O material orgânico tem uma propriedade denominada de eletroluminescência (EL) que faz com que o material "ilumine" ao ser estimulada por uma corrente elétrica ou por um campo eletromagnético. Portanto, essa camada orgânica quando estimulada emite luz nas cores vermelho, verde e azul (RGB), que é o padrão utilizado nos displays gráficos.

Display OLED SSD1306: É um display OLED que possui um controlador SSD1306. Este chip é responsável por fazer o controle entre o dispositivo e algum microcontrolador ou CPU. No caso, vamos utilizar o ATmega328 como microcontrolador (Arduino UNO).

a) Comunicação com o microcontrolador: O poderoso controlador CMOS OLED SSD1306 pode se comunicar com o microcontrolador Arduino de várias formas, incluindo I2C e SPI (as mais comuns). O protocolo de comunicação I2C requer apenas 2 pinos de conexão, enquanto que o SPI requer mais pinos de conexão, porém é geralmente mais rápido.

 b) Resolução, tamanho e cores: Graças a versatilidade do controlador SSD1306, o display pode ser fornecido em diferentes tamanhos e cores. Por exemplo, temos os OLEDs com resolução 128X64 (0,96") e OLEDs 128X32 (0,91") nas cores branco, azul, dual color (azul com uma faixa amarela na parte superior) ou colorido.

 c) Alimentação: Como já mencionamos anteriormente, o display OLED funciona sem a necessidade de luz de fundo porque produz a sua própria luz. Isto explica o seu alto contraste, nitidez e o seu baixo consumo de energia. Em média, o display usa no máximo 20mA de corrente. O display poderá ser conectado perfeitamente em qualquer microcontrolador lógico de 3.3V a 5V sem a necessidade de nenhum conversor.

d) Mapa de memória OLED: Independente do tamanho do display OLED, o driver SSD1306 possui 1KB de memória RAM embutida. Esta área de memória de 1K é organizada em 8 faixas (páginas de 0 a 7). Cada página contém 128 colunas (blocos de 0 a 127) e cada coluna pode armazenar 8 bits de dados (de 0 a 7). Portanto, temos 8 páginas X 128 colunas X 8 bits = 1024 bytes = 1kB de memória.

Obs.: A tela OLED 128 X 64 poderá exibir todo o conteúdo da RAM (8 páginas = 1Kb), enquanto que a tela OLED 128 X 32 exibe apenas a metade (4 páginas = 512bytes)

e) Especificação geral:

 Resolução  128 X 64 pixels  128 X 32 pixels
 Tamanho da tela  0.96 Inch Across  0.91 Inch Across
 Comunicação  I2C ou SPI  I2C ou SPI
 Controlador  SSD1306  SSD1306
 Tensão de operação  3.3V – 5V  3.3V – 5V
 Corrente de operação  20mA max   20mA max
 Ângulo de visão  160°   160°
 Caracteres por linha  21   21
 Número de faixas  8   4
 Dimensão do módulo  30 x 27 X 2,5mm  38 x 12 x 2,5 mm

Aplicação

Para fins didáticos e projetos onde é necessária a exibição de dados. Ideal para projetos que precisam exibir figuras geométricas, textos com fontes e tamanhos variados, caracteres especiais e figuras plotadas a partir de uma imagem em bitmap ou que exijam baixo consumo de energia.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 pontos

Jumpers Kit cabos ligação macho / macho 1    
Display OLED

Display OLED SSD1306

1  Tarzan Componentes Eletrônicos | Shield Arduino| Display Oled 1.3 Polegadas  Branco 125x64 I2c - R$ 51,90

– Tensão de operação: 3,3-5V
– Controlador: SSD1306
– Cor: Azul e Amarelo
– Comunicação: I2C
– Resolução: 128×64
– Dimensões: 30 x 27mm

Você também poderá utilizar na cor azul, branco ou colorido.

A comunicação poderá ser I2C ou SPI

Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo (display OLED com comunicação I2C). Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.