Uso dos periféricos onboard
Esta página reúne demos autônomos em nível de função para cada periférico onboard do 0,96'' IPS Display. Cada seção é independente — você pode escolher a que corresponde ao seu caso de uso sem precisar ler as demais.
Os GIFs de demonstração nesta página estão acelerados para mantê-los curtos.
Todos os demos desta página exigem Seeed nRF52 Boards (1.1.13) conforme descrito em Introdução, além da biblioteca Seeed_GFX2 instalada manualmente conforme descrito abaixo.
- Library Manager — vá em Sketch > Include Library > Manage Libraries..., pesquise e instale:
| Library | Search Keyword | Author | Required by |
|---|---|---|---|
| Seeed Arduino LSM6DS3 | Seeed Arduino LSM6DS3 | Seeed Studio | Quicksand, Wake |
- Seeed_GFX2 (Manual Installation) — esta biblioteca não está disponível no Library Manager e deve ser instalada manualmente:
Passo 1. Clique no botão acima para baixar Seeed_GFX2 v1.0.0 como um arquivo ZIP (fixado em uma tag de release para que o tutorial permaneça reprodutível). Como alternativa, clone o repositório em Seeed-Studio/Seeed_GFX2.
Passo 2. No Arduino IDE, vá em Sketch > Include Library > Add .ZIP Library... e selecione o ZIP baixado. O IDE lê library.properties e o instala automaticamente na pasta Seeed_GFX2 correta — você não precisa renomear a pasta extraída. (Para instalar manualmente em vez disso, descompacte o arquivo e renomeie a pasta extraída para Seeed_GFX2 antes de colocá-la em Documents/Arduino/libraries/.)
Passo 3. Reinicie o Arduino IDE para que a nova biblioteca seja detectada.
- Seeed_GFX2 é a biblioteca gráfica da Seeed Studio construída sobre uma arquitetura em camadas
Board+Panel Config. Cada demo inicializa o display com uma única chamadadisplay.begin<Board_XIAO_0inch96_LCD<38, 37>, Config_Seeed_0inch96_LCD_ST7789>()— o template Board é responsável pelo mapa de pinos (CS/DC/SCK/MOSI/RST/BL), e o Panel Config incorpora a resolução 80×160, a ordem de cores BGR e a rotação 2. A Seeed_GFX2 aciona este painel com um SPI de hardware conservador de 10 MHz, o que evita o problema de margem de sinal que exigia SPI por software em demos mais antigos. - O 0,96'' IPS Display não possui controlador touch nem slot para cartão SD, portanto nenhuma biblioteca de touch ou SD é necessária.
Obtendo o código de demonstração
Cada demo desta página está no repositório Display-Gadgets, dentro do diretório code_GFX2/Function/. Cada demo é uma pasta contendo um único sketch .ino. Sempre baixe a pasta completa em vez de copiar o código-fonte .ino da visualização web do GitHub.
Opção A — Baixar o repositório como ZIP (recomendado):
- Abra github.com/Seeed-Projects/Display-Gadgets e clique em Code > Download ZIP, depois extraia o arquivo em qualquer lugar conveniente.
- Navegue até
code_GFX2/Function/e abra a pasta mostrada na linha Code location de cada demo. Por exemplo, o demo GraphicTest para esta placa está emcode_GFX2/Function/096_nRF52840/xiao_nrf52840_096_graphictest/. - Dê um clique duplo no arquivo
.inopara abri-lo no Arduino IDE.
Opção B — git clone:
git clone https://github.com/Seeed-Projects/Display-Gadgets.git
Em seguida, abra o arquivo .ino do demo a partir da pasta clonada code_GFX2/Function/....
Display da tela — GraphicTest
Este demo executa um benchmark gráfico completo no painel IPS ST7789 de 0,96 polegada (80×160), cobrindo barras de cores, linhas, retângulos, círculos, triângulos, retângulos arredondados, texto e um gradiente de pixels. Use-o para verificar se a tela está ligada corretamente e se todas as chamadas de desenho funcionam como esperado.
Code location: code_GFX2/Function/096_nRF52840/xiao_nrf52840_096_graphictest/
Como funciona
O sketch inicializa o painel IPS ST7789 via Seeed_GFX2, depois executa dez primitivas gráficas em sequência, medindo o tempo de execução de cada uma via micros() e imprimindo o resultado no monitor serial.
O display é inicializado com uma única chamada de template:
display.begin<Board_XIAO_0inch96_LCD<38, 37>,
Config_Seeed_0inch96_LCD_ST7789>();
O template Board é responsável pelo mapa de pinos — CS=D2, DC=D3, SCK=D8, MOSI=D10 — e seus parâmetros de template <RST, BL> recebem números GPIO puros, então <38, 37> define RST=GPIO38 e BL=GPIO37. O Panel Config incorpora a resolução 80×160, a ordem de cores BGR e a rotação 2 — não é necessário driver.h nem chamada manual a invertDisplay(). A Seeed_GFX2 aciona o painel com um SPI de hardware conservador de 10 MHz, evitando o problema de margem de sinal que forçava o uso de SPI por software em demos mais antigos.
Ordem de cores (painel BGR). Este painel de 0,96 polegada troca fisicamente os canais vermelho e azul. O demo cria aliases de cores de acordo (por exemplo, um vermelho em nível de fio 0xF800 aparece azul na tela). Se você escrever seu próprio código de desenho, use os aliases de cores do demo ou leve em conta a ordem BGR — caso contrário, vermelhos e azuis aparecerão trocados.
Executando o demo
Passo 1. Abra xiao_nrf52840_096_graphictest.ino no Arduino IDE.
Passo 2. Selecione Tools > Board > Seeed nRF52 Boards > Seeed XIAO nRF52840 Plus e a Port correta.
Passo 3. Clique em Upload.
Passo 4. Abra Tools > Serial Monitor (115200 baud). Você deverá ver a saída de tempo para cada teste:
=== XIAO nRF52840 Plus 0.96 graphic test ===
LCD: 80x160
Color bars: 13.67 ms
Lines: 1712.89 ms
Fast lines: 25.39 ms
Rectangles: 23.44 ms
Filled rects: 47.85 ms
Circles: 207.03 ms
Triangles: 166.99 ms
Round rects: 48.83 ms
Text: 539.06 ms
Pixel gradient: 1907.23 ms
Graphic test finished.
Na tela, você verá cada padrão de teste exibido por cerca de um segundo antes que o próximo comece. Quando todos os testes forem concluídos, aparecerá uma tela "Done! All tests OK".
Resultado esperado

Depois que o sketch executar todos os padrões, a tela mostrará uma mensagem "Done!". Reinicie a placa para executar o teste novamente.
IMU
O 0,96'' IPS Display possui uma IMU de 6 eixos onboard (LSM6DS3) conectada via I2C em D4/D5. A linha de interrupção de movimento em D14 oferece suporte a wake-up por hardware e detecção de gestos.
Ambos os demos abaixo usam o LSM6DS3 no endereço I2C 0x6A.
Demo 1: Areia movediça eletrônica
Este demo transforma a tela em uma simulação de fluido interativa — partículas de areia dourada que fluem e se acomodam de acordo com a gravidade, conforme medida pela IMU de 6 eixos onboard. Incline a placa e a areia muda de direção em tempo real.
Code location: code_GFX2/Function/096_nRF52840/xiao_nrf52840_096_electronic_quicksand/
Como Funciona
A simulação usa uma grade de ocupação de 13×26 sobreposta na tela de 80×160, onde cada célula tem 6×6 pixels. Cerca de 65 partículas são colocadas na grade, cada uma com posição, velocidade e um gradiente de cor dourado.
O IMU é lido via I2C (D4/D5) usando a biblioteca Seeed Arduino LSM6DS3 no endereço 0x6A. Os valores brutos de aceleração são filtrados com um passa-baixa e usados para derivar um vetor de gravidade. Quando você inclina a placa:
- Atualização do vetor de gravidade — os dados do acelerômetro são suavizados com uma média móvel exponencial para evitar tremores.
- Velocidade das partículas — cada partícula acelera na direção do vetor de gravidade, com amortecimento e um fator de mobilidade por partícula baseado em sua profundidade no fluxo.
- Ocupação das células — partículas mais profundas no fluxo (mais próximas do "fundo" em relação à gravidade) têm mobilidade reduzida, criando um efeito de empacotamento realista.
- Renderização diferencial — apenas as células para onde as partículas se moveram para dentro ou para fora são redesenhadas, minimizando o tráfego SPI e mantendo a animação suave no pequeno painel.
Partículas próximas à superfície fluem livremente (maior mobilidade); partículas enterradas mais profundamente se compactam firmemente (menor mobilidade) — imitando como a areia real se comporta.
Executando a Demo
Passo 1. Abra xiao_nrf52840_096_electronic_quicksand.ino na Arduino IDE.
Passo 2. Selecione a placa e a porta, depois clique em Upload.
Passo 3. Depois do upload, a tela se enche de partículas douradas na parte inferior. Incline a placa em diferentes direções — a areia flui como se fosse puxada pela gravidade.
Passo 4. Abra Tools > Serial Monitor (115200 baud) para confirmar a inicialização:
LCD w=80 h=160
=== Electronic Quicksand 0.96 ===
imu.begin=0
Resultado Esperado

As partículas de areia douradas fluem suavemente enquanto você inclina a placa. Quando mantida plana, a areia se acomoda na parte inferior da tela. Gire a placa em 90 graus e a areia flui para o novo "fundo" em um segundo.
Demo 2: Levantar para Despertar
Esta demo implementa um sistema de suspensão/despertar da tela acionado pela interrupção de movimento integrada do IMU no D14. A tela desliga automaticamente (luz de fundo desligada + sono System ON do nRF52) após um período de inatividade configurável, e desperta instantaneamente quando você pega ou move o dispositivo.
Localização do código: code_GFX2/Function/096_nRF52840/xiao_nrf52840_096_wakeup/
Como Funciona
A demo usa o detector de evento de despertar incorporado do LSM6DS3 — um recurso de hardware que monitora internamente os dados do acelerômetro e aciona o pino INT1 (conectado ao D14 nesta placa) quando o movimento excede um limite configurável. Isso significa que o MCU não precisa consultar o acelerômetro continuamente.
Configuração do IMU (LSM6DS3):
| Registrador | Valor | Finalidade |
|---|---|---|
CTRL3_C | 0x44 | Atualização de dados em bloco (BDU) + auto-incremento |
CTRL1_XL | 0x40 | Acelerômetro @ 104 Hz, ±2g |
TAP_CFG | 0x80 | Habilitar interrupções incorporadas |
WAKE_UP_THS | 0x05 | Limite de despertar (sensibilidade média-baixa) |
WAKE_UP_DUR | 0x00 | Sem filtro de duração (despertar responsivo) |
MD1_CFG | 0x20 | Roteia o despertar para INT1 |
Fluxo de suspensão/despertar:
- Estado ativo — a tela está ligada, luz de fundo em brilho máximo, a interface é atualizada a cada 250 ms com dados em tempo real do IMU.
- Suspensão automática — após 8 segundos de inatividade, o sketch desliga a luz de fundo, exibe a mensagem "Sleep — Move to wake" e entra no modo System ON sleep do nRF52 (modo de baixo consumo com retenção de RAM). A interrupção de despertar do IMU no D14 já foi configurada na inicialização, então a detecção de movimento permanece ativa durante o sono.
- Despertar — quando o usuário pega a placa, o IMU detecta movimento e coloca o D14 em nível HIGH. O nRF52840 sai do System ON sleep, liga novamente a luz de fundo e redesenha a interface — o LCD e o IMU mantêm seu estado porque o System ON sleep preserva a RAM.
Botões de teste manual:
| Botão | Pino | Ação |
|---|---|---|
| USR1 | D6 | Forçar suspensão |
| USR2 | D7 | Forçar despertar |
Executando a Demo
Passo 1. Abra xiao_nrf52840_096_wakeup.ino na Arduino IDE, selecione a placa e a porta e clique em Upload.
Passo 2. A tela mostra um painel compacto com estado de energia, dados de movimento e uma contagem regressiva. Deixe a placa parada — ela entrará automaticamente em suspensão após 8 segundos.
Passo 3. Pegue a placa ou agite-a suavemente — a tela desperta imediatamente.
Passo 4. Abra Tools > Serial Monitor (115200 baud) para observar a inicialização e as transições de suspensão/despertar:
=== XIAO nRF52840 Plus 0.96 IMU Wake Demo ===
[LCD] OK 0.96 ST7789 80x160
[IMU] LSM6DS3 begin=0
[IMU] CTRL1_XL = 0x40
[IMU] TAP_CFG = 0x80
[IMU] MD1_CFG = 0x20
[IMU] WAKE_UP_THS = 0x05
[IMU] D14 wake interrupt OK
[IMU] D14 pin state = 0
[BOOT] done. Screen should be on.
[SLEEP] screen off, entering System ON sleep
[SLEEP] loops=1 D14=0 awake=N
[SLEEP] loops=1025 D14=0 awake=N
[WAKE] D14 pin HIGH (polled)
[WAKE] src=0xA
[WAKE] reason=IMU_D14 wakeCount=8 sleptMs=4142 sleepLoops=1936 wakeSrc=0xA
[WAKE] src=0x0
Os campos sleptMs, sleepLoops e wakeSrc variam dependendo de quanto tempo a placa ficou em suspensão e qual gesto acionou o despertar.
Resultado Esperado

A tela exibe dados de movimento em tempo real enquanto está ativa. Após 8 segundos de imobilidade, a tela escurece e o nRF52840 entra em sono de baixo consumo. Pegue o dispositivo e a tela é restaurada instantaneamente, com o contador de despertares incrementado.
Microfone e Alto-falante — Gravador em Flash
Esta demo transforma o Display IPS de 0,96'' em um pequeno gravador de voz. Pressione USR1 para capturar um pequeno clipe do microfone PDM onboard para o sistema de arquivos em flash interno do nRF52840, depois pressione USR2 para reproduzi-lo através de um amplificador I2S externo.
O microfone PDM do Display IPS de 0,96'' se conecta aos mesmos pinos que as outras placas de display XIAO:
| Pino | Sinal | Função |
|---|---|---|
| D0 | PDM_CLK | Saída de clock PDM para o microfone |
| D1 | PDM_DATA | Entrada de dados PDM do microfone |
Localização do código: code_GFX2/Function/096_nRF52840/xiao_nrf52840_096_flash_record/
Configuração de Hardware
O lado da reprodução precisa de um amplificador I2S externo. A demo foi escrita para o breakout MAX98357A, conectado aos pads de teste I2S do Display IPS de 0,96'':
| Pino XIAO | Sinal I2S | MAX98357A |
|---|---|---|
| 3V3 | Alimentação | VIN |
| GND | Terra | GND |
| D11 | I2S_SD (saída de dados) | DIN |
| D12 | I2S_SCK (bit clock) | BCLK |
| D13 | I2S_WS (word select) | LRC |
Desconecte a alimentação USB antes de fazer a fiação do amplificador e do alto-falante. Conecte o alto-falante aos terminais SPK+ e SPK- do MAX98357A — não conecte nenhum fio do alto-falante ao GND.
O Display IPS de 0,96'' não possui slot para cartão SD, portanto este demo grava no sistema de arquivos flash interno (InternalFS) do nRF52840. O InternalFS tem cerca de 28 KB — o tutorial grava 11.200 amostras mono a 16 kHz, produzindo cerca de 22 KB de áudio PCM e uma duração de gravação de aproximadamente 0,7 segundos.
Como Funciona
Display:
A tela é controlada pela Seeed_GFX2 com Board_XIAO_0inch96_LCD<38, 37> e Config_Seeed_0inch96_LCD_ST7789 (80×160, BGR, rotação 2) via SPI de hardware a 10 MHz.
Gravação (USR1):
- O sketch inicia o periférico PDM em 16 kHz, canal único e captura amostras brutas em um buffer de 11200 amostras (≈ 0,7 s, ≈ 22 KB de PCM) por meio de uma ISR (
onPdmData). - Uma tela de progresso mostra a porcentagem de gravação e o tempo decorrido em tempo real.
- Quando o buffer está cheio, o sketch adiciona um cabeçalho WAV de 44 bytes e grava o arquivo
/REC_RAW.WAVno InternalFS.
Reprodução (USR2):
- O WAV é carregado de volta a partir do InternalFS.
- O sketch aciona o periférico I2S do nRF52840 em modo mestre com uma razão de 32× (≈ 16 kHz LRCK), enviando quadros estéreo de 16 bits para o MAX98357A com ganho de 0,75× (cada amostra mono é duplicada para ambos os canais).
- Um esquema de buffer duplo (pingue-pongue) mantém o fluxo de áudio ininterrupto até o fim do clipe.
Botões:
| Button | Pin | Action |
|---|---|---|
| USR1 | D6 | Gravar um novo clipe (substitui o anterior) |
| USR2 | D7 | Reproduzir o clipe salvo |
As bibliotecas PDM, Adafruit TinyUSB, Adafruit LittleFS e InternalFileSystem vêm incluídas em Seeed nRF52 Boards 1.1.13 — não instale versões separadas pelo Library Manager. Este tutorial não usa SdFat.
Executando o Demo
Passo 1. Abra xiao_nrf52840_096_flash_record.ino na Arduino IDE.
Passo 2. Selecione Tools > Board > Seeed nRF52 Boards > Seeed XIAO nRF52840 Plus e a Porta correta.
Passo 3. Clique em Upload.
Passo 4. A tela mostra a tela ociosa do "Recorder". Pressione USR1 — uma barra de progresso vermelha "REC" é preenchida enquanto grava. Quando terminar, salva o WAV e retorna à tela ociosa.
Passo 5. Pressione USR2 — o clipe é reproduzido pelo alto-falante MAX98357A conectado, com a tela mostrando "Playing...".
Resultado Esperado

Após pressionar USR1, a barra de progresso vermelha é preenchida até 100% e o clipe é salvo. Pressionar USR2 reproduz a gravação pelo MAX98357A. O arquivo WAV é armazenado no InternalFS e permanece disponível após um reset ou ciclo de energia. Gravar novamente com USR1 substitui o arquivo anterior.
Este tutorial foi compilado, carregado e testado em hardware com o XIAO nRF52840 Plus, o Display IPS de 0,96'', um amplificador MAX98357A e um alto-falante externo.
Botões de Usuário
O Display IPS de 0,96'' possui dois botões físicos de pressão conectados ao XIAO nRF52840 Plus:
| Button | Pin | Logic | Silkscreen Label |
|---|---|---|---|
| USR1 | D6 | Ativo em nível baixo (pressionado = LOW) | USR1 |
| USR2 | D7 | Ativo em nível baixo (pressionado = LOW) | USR2 |
Diferente do Display IPS de 1,14'', o Display IPS de 0,96'' não possui terceiro botão (sem USR3 em D19). Ele também não possui pads de breakout dedicados para botões.
Leitura dos Botões
Os demos onboard configuram os botões com o pull-up interno:
const int USR1 = D6;
const int USR2 = D7;
void setup() {
pinMode(USR1, INPUT_PULLUP);
pinMode(USR2, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
if (digitalRead(USR1) == LOW) {
Serial.println("USR1 (D6) pressed");
delay(200); // simple debounce
}
if (digitalRead(USR2) == LOW) {
Serial.println("USR2 (D7) pressed");
delay(200);
}
}
Eliminação de Bounce com Interrupções
Para um tratamento de botões responsivo, com eliminação de bounce e sem bloquear o loop principal, você pode usar interrupções por mudança de estado no pino:
volatile bool btn1Flag = false;
volatile bool btn2Flag = false;
void btn1Isr() { btn1Flag = true; }
void btn2Isr() { btn2Flag = true; }
void setup() {
pinMode(D6, INPUT_PULLUP);
pinMode(D7, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(D6), btn1Isr, FALLING);
attachInterrupt(digitalPinToInterrupt(D7), btn2Isr, FALLING);
}
void loop() {
if (btn1Flag) {
btn1Flag = false;
delay(30); // debounce settling time
if (digitalRead(D6) == LOW) {
// handle USR1 press
}
}
if (btn2Flag) {
btn2Flag = false;
delay(30);
if (digitalRead(D7) == LOW) {
// handle USR2 press
}
}
}
Comportamento Padrão no Dashboard de Fábrica
No firmware de fábrica pré-carregado, os botões são mapeados da seguinte forma (você pode sobrescrever isso no seu próprio código):
| Button | Pin | Action |
|---|---|---|
| USR1 | D6 | Ciclar o brilho da tela (100% → 75% → 50% → 25% → 100%) |
| USR2 | D7 | Alternar o backlight da tela ON/OFF |
Quando a tela está desligada (alternada via USR2), pressionar USR2 novamente a restaura ao nível anterior diferente de zero.
Status da Bateria
Este demo mostra o status da bateria — um ícone de bateria com nível de carga e estado de carregamento — no Display IPS de 0,96''. Ele detecta se uma bateria LiPo está fisicamente conectada e mostra um de três estados: USB PWR (sem bateria), porcentagem (apenas bateria) ou charging (USB + bateria).
O Display IPS de 0,96'' não possui pino ADC dedicado para bateria (D16 é NC) — a tensão da bateria é medida através do divisor interno do módulo XIAO nRF52840 Plus.
Localização do código: code_GFX2/Function/096_nRF52840/xiao_nrf52840_096_battery_status/
Como Funciona
Display:
A tela é controlada pela Seeed_GFX2 com Board_XIAO_0inch96_LCD<38, 37> e Config_Seeed_0inch96_LCD_ST7789 (80×160, BGR, rotação 2) via SPI de hardware a 10 MHz.
Circuito da bateria:
O nRF52840 Plus usa três pinos GPIO para formar um sistema completo de monitoramento de bateria:
| Signal | nRF52840 Pin | Function |
|---|---|---|
READ_BAT | P0.14 | Habilitação do divisor de tensão da bateria. Ativo em nível baixo — defina LOW para habilitar o divisor, depois libere para HIGH (alta impedância) para economizar energia. |
VBAT_ADC | PIN_VBAT (AIN7 / P0.31) | Entrada analógica que lê a tensão da bateria dividida. |
CHG | P0.17 | Indicador de status de carregamento. Ativo em nível baixo — lê LOW quando um carregador está conectado e a bateria está carregando. |
Detecção:
Sob USB-C, uma tensão VBAT estática não consegue indicar se uma bateria está presente — o nó BAT do carregador pode se parecer com uma célula Li-ion real mesmo sem nenhuma bateria conectada. Portanto, o demo primeiro aprende uma linha de base apenas USB, depois confirma a inserção da bateria somente após um deslocamento sustentado de VBAT para baixo, e confirma a remoção após uma leitura ruidosa/saltada combinada com ~CHG indo para HIGH. Isso espelha a lógica de detecção do Dashboard de fábrica.
Estados do ícone:
- Sem bateria — ícone de bateria com contorno cinza e um X vermelho, rotulado como USB PWR.
- Bateria presente — ícone de bateria com contorno branco e preenchimento colorido (verde / amarelo / vermelho por porcentagem), rotulado com a porcentagem e a tensão.
- Carregando — preenchimento ciano com um ícone de raio, rotulado com a porcentagem e a tensão.
O pino ~CHG é lido através dos registradores GPIO brutos do nRF52840 (nrf_gpio_cfg_input() e NRF_P0->IN) em vez de digitalRead(). Na API do Arduino, os números de pino seguem o mapeamento do pacote da placa, onde digitalRead(17) na verdade lê P0.07 (a linha de dados I2C do IMU de 6 eixos) em vez de P0.17. As constantes 14 e 17 aqui são números de pino P0.x brutos da Nordic (P0.14 e P0.17), que é exatamente o que as chamadas de registrador esperam.
A demonstração usa o resistor de baixa lateral 499 kΩ calibrado de fábrica (taxa do divisor ≈ 3,004), não o valor nominal de 510 kΩ. O divisor está integrado no próprio módulo XIAO nRF52840 Plus, não na placa de display. O pino de habilitação P0.14 é ativo em nível baixo: coloque-o em nível BAIXO para habilitar o divisor e, em seguida, libere-o para alta impedância (INPUT) para minimizar a corrente de repouso quando a bateria não estiver sendo medida.
Executando a demonstração
Passo 1. Abra xiao_nrf52840_096_battery_status.ino na Arduino IDE.
Passo 2. Selecione Tools > Board > Seeed nRF52 Boards > Seeed XIAO nRF52840 Plus e a Porta correta.
Passo 3. Clique em Upload.
Passo 4. Observe a tela — ela mostra o ícone da bateria com o estado atual. Conecte ou desconecte uma bateria LiPo (ou o cabo USB-C) para ver o ícone alternar entre os três estados.
Resultado esperado
![]() USB PWR (sem bateria) | ![]() Percentage (somente bateria) |
![]() Charging (USB + bateria) | ![]() Conector da bateria (parte de trás) |
Sem uma bateria, a tela mostra uma bateria cinza com um X vermelho e o rótulo USB PWR. Insira uma bateria LiPo e o ícone muda para um preenchimento colorido com a porcentagem e a tensão. Conecte o USB-C enquanto uma bateria estiver presente e o preenchimento fica ciano com um raio, indicando carregamento.
A demonstração também imprime uma linha de diagnóstico no Serial Monitor a cada 500 ms, por exemplo:
VBAT 3.87V charging 85 spread=5 usb=ON base=4.140 baseValid=Y state=PRESENT filter=STABLE removeCount=0
Recursos
- 🗃️[Arquivos de design de PCB] XIAO 0.96'' IPS Display (nRF52840) KiCad Project
- 📄[Esquemático] XIAO 0.96'' IPS Display (nRF52840) Schematic
- 📦[Modelo 3D] XIAO 0.96'' IPS Display (STEP)
- 📄[Datasheet] 0.96 Inch Display Datasheet
- 💾[Firmware de fábrica] XIAO 0.96'' IPS Display (nRF52840) Factory Firmware
- [Demo] Código de demonstração da placa de display XIAO — todas as demos de Function estão no diretório
code_GFX2/Function/096_nRF52840/
Suporte técnico e discussão sobre o produto
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.



