OLED1
Datasheet |
---|
OLED1 |
O OLED1 é uma placa de extensão fabricada pela Atmel/Microchip que possui 3 botões, 3 LEDs e um display OLED.
Placa Adaptadora
Desenvolvemos uma placa adaptadora que permite facilmente utilizarmos o OLED1 com a Raspberry Pi Pico. A placa elimina a necessidade de conexão, minimizando erros de montagem.
Os pinos foram mapeados da seguinte maneira:
Warning
Nenhum pino listado a seguir deve ser utilizado para outra funcionalidade.
Conexão Pico W | Pino Pico W | Conexão OLED1 | Pino OLED1 |
---|---|---|---|
GND | 3 | GND | 2 |
VCC | 36 | VCC | 1 |
GPIO-9 | 12 | DISPLAY_SS | 15 |
GPIO-10 | 14 | SPI_SCK | 18 |
GPIO-11 | 15 | SPI_MOSI | 16 |
GPIO-14 | 19 | DISPLAY_RESET | 10 |
GPIO-15 | 20 | DATA_CMD_SEL | 5 |
GPIO-20 | 26 | LED 1 | 7 |
GPIO-21 | 27 | LED 2 | 8 |
GPIO-22 | 29 | LED 3 | 6 |
GPIO-26 | 31 | BUTTON 2 | 3 |
GPIO-27 | 32 | BUTTON 3 | 4 |
GPIO-28 | 34 | BUTTON 1 | 9 |
Display
O display da placa OLED é:
- UG-2832HSWEG04 monocromático OLED Display
- 128 x 32 pixels
- Controlado por interface SPI de 4 fios, de até 100 MHz
O importante é que para acessarmos o display, precisamos usar o protocolo de comunicação SPI! Esse protocolo é muito utilizado para esse tipo de comunicação entre microcontrolador e periféricos, então a maioria dos uC possuem um periférico específico para isso (que é o caso da nossa Raspberry Pi Pico).
Driver
O driver é responsável por fazer a interface de baixo nível com o display externo, no nosso caso isso é feito pela comunicação SPI. O driver possui funções básicas como inicializar o display e escrever um pixel no display. O nosso microcontrolador possui dois periféricos de interface SPI:
Lib Gráfica - glx
O display apenas exibe pixels, ele não processa ou gera textos. Para isso, será necessário usarmos uma biblioteca gráfica (glx
) que será capaz de criar componentes básicos no display e facilitar a nossa vida!
A estrutura normalmente é realizada da seguinte maneira:
A aplicação faz uso da biblioteca glx
, que gera as imagens e salva em um framebuffer
local ao microcontrolador (vetor que possui todos os pixels do display). Quando a aplicação requisita uma mudança (por exemplo, escrever um texto), o glx modifica o framebuffer
e, via o driver ssd1306
, atualiza o display para exibir o novo resultado.