Display OLED SSD1306 128×64 (I2C)
Telinha OLED de 128 × 64 pontos que acendem sozinhos (não tem luz de fundo). Conversa com a ESP32 por I2C (só 2 fios de dados: SCL e SDA). O driver ssd1306.py NÃO vem no firmware: copie o arquivo para a placa antes. Você desenha na memória (texto, pontos, retângulos) e só aparece na tela com oled.show(). Atenção: a ordem dos pinos muda de fabricante para fabricante (VCC e GND trocados).
Pinagem
| Pino | Ligar em | Observação |
|---|---|---|
| GND | GND | confira a ordem impressa no SEU módulo |
| VCC | 3V3 | em alguns módulos o VCC vem antes do GND |
| SCL | GPIO22 (ligação usada no exemplo) | relógio do I2C |
| SDA | GPIO21 (ligação usada no exemplo) | dados do I2C |
A IA que lembra da sua vida e mora no seu computador
- Memória de longo prazo com a fonte de cada resposta
- Funciona offline: seus dados ficam no seu PC
- Lê PDFs, slides, fotos e gravações de reunião
Plano Essencial grátis para sempre
Exemplo em MicroPython
# ANTES: copie ssd1306.py (micropython-lib) para a placa — ele não vem no firmware.
from machine import Pin, I2C
import ssd1306
import time
# ligação usada aqui (comum na DevKit): SCL no GPIO22 e SDA no GPIO21
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
print(i2c.scan()) # o OLED responde em 60 (0x3C)
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # endereço 0x3C
oled.fill(0) # apaga tudo (na memória)
oled.text("Ola, ESP32!", 0, 0) # a fonte 8x8 não tem acentos
oled.rect(0, 16, 128, 48, 1) # moldura
oled.show() # agora sim aparece na tela
n = 0
while True:
oled.fill_rect(8, 32, 112, 8, 0) # limpa só a linha do contador
oled.text("contador: %d" % n, 8, 32)
oled.show()
n += 1
time.sleep(1)
Especificações
| Item | Valor | Fonte |
|---|---|---|
| Resolução | 128 × 64 pontos | shared/componentes/catalogo.js |
| Endereço I2C | 0x3C (alternativo 0x3D) | docs/04-componentes.md (valores típicos de datasheet) |
| Ordem dos pinos | GND, VCC, SCL, SDA — varia por fabricante (variante com VCC e GND trocados) | docs/04-componentes.md (valores típicos de datasheet) |
| Driver | ssd1306.py — copiar para a placa | docs/04-componentes.md (valores típicos de datasheet); micropython-lib: micropython/drivers/display/ssd1306/ssd1306.py |
| Alimentação | 3,3 V no simulador | shared/componentes/catalogo.js — TODO(fidelidade): faixa de VCC do módulo (aceita 5 V?) |
| Pull-up no SDA/SCL | há módulos com e sem os resistores (propriedade da peça); sem pull-up o I2C não funciona | shared/componentes/catalogo.js — TODO(fidelidade): conferir no módulo do laboratório |
| Cor da tela | branca no simulador | TODO(fidelidade): há módulos azuis e amarelo + azul — qual é o do laboratório? |
Valores marcados com TODO(fidelidade) ainda vão ser conferidos nas peças do laboratório.