Arduino Nano ESP32 - OLED
Este tutorial mostra como usar o Arduino Nano ESP32 com o display OLED. Em detalhes, vamos aprender:
- Como conectar o display OLED ao Arduino Nano ESP32.
- Como programar o Arduino Nano ESP32 para mostrar texto e números no OLED.
- Como programar o Arduino Nano ESP32 para centralizar texto e números na vertical e na horizontal no OLED.
- Como programar o Arduino Nano ESP32 para desenhar no OLED.
- Como programar o Arduino Nano ESP32 para mostrar uma imagem no OLED.
Hardware Necessário
Or you can buy the following kits:
| 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 display OLED disponíveis. O OLED mais usado com o Arduino Nano ESP32 é o display SSD1306 I2C OLED 128x64 e 128x32.

Pinagem do Display OLED I2C
- Pino GND: Deve ser conectado ao GND do Arduino Nano ESP32.
- Pino VCC: É a alimentação do display, que deve ser conectado ao 3.3V ou 5V.
- Pino SCL: É o pino de clock serial da interface I2C.
- Pino SDA: É o pino de dados serial da interface I2C.

※ Nota:
- Os pinos do módulo OLED podem ser diferentes dependendo do fabricante e do tipo. Use os rótulos impressos no módulo OLED. Olhe com atenção!
- Este tutorial usa o display OLED controlado pelo driver SSD1306 I2C. Nós o testamos com o display OLED da DIYables e ele funciona perfeitamente.
Diagrama de Ligação
- Diagrama de ligação entre o Arduino Nano ESP32 e o OLED 128x64

This image is created using Fritzing. Click to enlarge image
- Diagrama de ligação entre o Arduino Nano ESP32 e o OLED 128x32

This image is created using Fritzing. Click to enlarge image
A tabela de ligação entre o Arduino Nano ESP32 e o display OLED:
| Módulo OLED | Arduino Nano ESP32 |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Como Usar o OLED com o Arduino Nano ESP32
Instalar a biblioteca SSD1306 OLED
- Clique no ícone Libraries na barra à esquerda da Arduino IDE.
- Pesquise “SSD1306” e localize a biblioteca SSD1306 da Adafruit.
- Depois, pressione o botão Install para concluir a instalação.

- Você será solicitado a instalar dependências adicionais da biblioteca.
- Para instalar todas elas, clique no botão Install All.

Como programar o OLED
- Inclua a biblioteca
- Especifique as dimensões da tela OLED como 128 x 64.
- Ou especifique as dimensões de uma tela OLED de 128x32.
- Crie um objeto do tipo SSD1306 OLED.
- Na função setup(), inicie o display OLED.
- Depois, você pode mostrar texto, imagens e desenhar uma linha...
Daqui em diante, todos os códigos serão para o OLED 128x64. No entanto, é fácil modificá-los para o OLED 128x32 alterando o tamanho da tela e ajustando as coordenadas, se necessário.
Código Arduino Nano ESP32 - Mostrar Texto no OLED
Estas são algumas funções que podem ser usadas para mostrar texto no OLED:
- oled.clearDisplay(): todos os pixels ficam apagados.
- oled.drawPixel(x,y, color): desenha um pixel nas coordenadas x,y.
- oled.setTextSize(n): define o tamanho da fonte, com suporte a tamanhos de 1 a 8.
- oled.setCursor(x,y): define as coordenadas para começar a escrever o texto.
- oled.setTextColor(WHITE): define a cor do texto.
- oled.setTextColor(BLACK, WHITE): define a cor do texto e a cor de fundo.
- oled.println(“message”): imprime os caracteres.
- oled.println(number): imprime um número.
- oled.println(number, HEX): imprime um número em formato hexadecimal.
- oled.display(): chame este método para que as mudanças tenham efeito.
- oled.startscrollright(start, stop): rola o texto da esquerda para a direita.
- oled.startscrollleft(start, stop): rola o texto da direita para a esquerda.
- oled.startscrolldiagright(start, stop): rola o texto do canto inferior esquerdo para o canto superior direito.
- oled.startscrolldiagleft(start, stop): rola o texto do canto inferior direito para o canto superior esquerdo.
- oled.stopscroll(): para a rolagem.
Como centralizar texto/número na vertical e na horizontal no OLED
Para saber como alinhar texto e números na vertical e na horizontal em um display OLED, consulte Como centralizar na vertical/horizontal no OLED.
Código Arduino Nano ESP32 - Desenhar no OLED
Código Arduino Nano ESP32 – Mostrar Imagem
Para mostrar uma imagem no OLED, primeiro precisamos converter a imagem (em qualquer formato) em um array de bitmap. Isso pode ser feito usando a ferramenta online. A imagem a seguir demonstra como converter uma imagem em um array de bitmap; eu usei o ícone do Arduino Nano ESP32 como exemplo.

Depois da conversão, pegue o código do array e coloque no lugar do array ArduinoIcon no código abaixo.
※ Nota:
- O tamanho da imagem não deve ser maior que o tamanho da tela.
- Se você quiser usar o código para um OLED 128x32, você deve redimensionar a imagem e ajustar os parâmetros de largura e altura na função oled.drawBitmap();.
Solução de Problemas do OLED
Verifique se o OLED está funcionando corretamente fazendo o seguinte:
- Verifique se a sua ligação está correta.
- Confirme se o seu OLED usa o driver SSD1306.
- Use o código I2C Address Scanner no Arduino Nano ESP32 para verificar o endereço I2C do OLED.
A saída exibida no Serial Monitor fica como abaixo: