Arduino UNO R4 - OLED
Este tutorial ensina como usar o Arduino UNO R4 com o display OLED 128x64 I2C. Em detalhes, vamos aprender:
- Como conectar um display OLED 128x64 ao Arduino UNO R4.
- Como programar o Arduino UNO R4 para exibir texto e números em um OLED com o Arduino UNO R4.
- Como centralizar texto e números na vertical e na horizontal em um OLED.
- Como criar desenhos em um OLED com o Arduino UNO R4.
- Como mostrar imagens em um OLED com o Arduino UNO R4.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: If you want a bigger OLED display, use the 2.42 inch OLED Display 128x64 .
Sobre o Display OLED
Existem vários tipos de displays OLED. Eles variam na forma de comunicação, no tamanho e nas cores.
- Métodos de comunicação: I2C, SPI
- Dimensões: 128x64, 128x32...
- Cores: branco, azul, bicolor...

O SPI costuma ser mais rápido que o I2C, mas precisa de mais pinos no Arduino UNO R4. Já o I2C precisa de apenas dois pinos, e esses pinos podem se conectar a vários dispositivos I2C. Você precisa escolher entre usar menos pinos ou ter uma comunicação mais rápida. Para telas OLED com I2C, existem drivers diferentes, como SSD1306 e SH1106. Este guia usa o Display OLED I2C SSD1306 128x64
Pinagem do Display OLED I2C
- Pino GND: deve ser conectado ao GND do Arduino UNO R4
- Pino VCC: é a alimentação do display, que conectamos ao pino de 5 volts do Arduino UNO R4.
- Pino SCL: é o pino de clock serial da interface I2C.
- Pino SDA: é o pino de dados seriais da interface I2C.

※ Nota:
A disposição dos pinos em um módulo OLED pode variar conforme o fabricante e o modelo do módulo. Sempre confira e siga os rótulos do módulo OLED. Fique atento!
Este guia é para um display OLED que usa o driver I2C SSD1306. Nós o testamos com um display OLED da DIYables. Ele funciona perfeitamente, sem nenhum problema.
Diagrama de Ligação
- Diagrama de conexão do Arduino UNO R4 com a tela OLED 128x64

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.
Se você usar um tipo diferente de Arduino UNO R4, a disposição dos pinos não será igual à do Uno. Veja a tabela abaixo para obter informações sobre outros modelos de Arduino UNO R4.
| Módulo OLED | Arduino UNO R4 |
|---|---|
| Vin | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Como Usar o OLED com o Arduino UNO R4
Instale a biblioteca OLED SSD1306
- Vá até o ícone Libraries no lado esquerdo da Arduino IDE.
- Digite "SSD1306" na caixa de busca e procure a biblioteca SSD1306 da Adafruit.
- Pressione o botão Install para adicionar a biblioteca.

- Você precisará instalar algumas bibliotecas adicionais.
- Clique no botão Install All para instalar todas as bibliotecas necessárias.

Como programar para o OLED
- Inclua uma biblioteca.
- Defina o tamanho da tela como OLED 123x64.
- Crie um objeto OLED SSD1306.
- Na função setup(), configure a tela OLED.
- Depois disso, você pode mostrar texto, imagens e desenhar linhas.
Código Arduino UNO R4 - Exibir Texto no OLED
Aqui estão algumas funções que você pode usar para mostrar texto no OLED:
- oled.clearDisplay(): desliga todos os pixels.
- oled.drawPixel(x, y, color): desenha um pixel nas coordenadas x, y.
- oled.setTextSize(n): muda o tamanho do texto, com opções de 1 a 8.
- oled.setCursor(x, y): define o ponto inicial do texto.
- oled.setTextColor(WHITE): deixa a cor do texto branca.
- oled.setTextColor(BLACK, WHITE): deixa a cor do texto preta e o fundo branco.
- oled.println("message"): exibe texto.
- oled.println(number): exibe um número.
- oled.println(number, HEX): mostra um número no formato hexadecimal.
- oled.display(): atualiza o display com as alterações.
- oled.startscrollright(start, stop): move o texto da esquerda para a direita.
- oled.startscrollleft(start, stop): move o texto da direita para a esquerda.
- oled.startscrolldiagright(start, stop): move o texto na diagonal, do canto inferior esquerdo para o superior direito.
- oled.startscrolldiagleft(start, stop): move o texto na diagonal, do canto inferior direito para o superior esquerdo.
- oled.stopscroll(): interrompe qualquer texto em rolagem.
Como centralizar texto/número na vertical e na horizontal no OLED
Código Arduino UNO R4 - Desenhar no OLED
Código Arduino UNO R4 – Exibir Imagem
Para exibir uma imagem em uma tela OLED, primeiro transforme a imagem (em qualquer formato) em um array de bitmap. Você pode usar esta ferramenta Conversor de Imagem para Bitmap para convertê-la. Veja a imagem abaixo para entender como transformar uma imagem em um array de bitmap. Eu transformei o ícone do Arduino em um array de bitmap.

Copie o código do novo array e atualize-o no array do ícone do Arduino no código abaixo.
※ Nota:
- O tamanho da imagem deve ser igual ou menor que o tamanho da tela.
- Para usar o código fornecido em um OLED 128x32, você precisa redimensionar a imagem e ajustar a largura e a altura na função oled.drawBitmap();.
Solução de Problemas do OLED
Se a tela OLED não mostrar nada, siga estes passos:
- Certifique-se de que a ligação está feita corretamente.
- Confirme que o seu OLED I2C possui o driver SSD1306.
- Verifique o endereço I2C do seu OLED usando o código I2C Address Scanner a seguir no Arduino UNO R4.
A saída no Serial Monitor: