Arduino Uno R4 - Multi-Function Shield
O Multi-Function Shield é um ótimo companheiro para o Arduino Uno R4 — seja a versão Minima ou a WiFi. Neste guia, você vai aprender a:
- Encaixar o Multi-Function Shield na placa Arduino Uno R4.
- Mostrar números, valores de ponto flutuante e texto no display de 7 segmentos e 4 dígitos.
- Responder aos toques nos três botões da placa.
- Controlar os quatro LEDs — ligando, desligando ou fazendo-os piscar.
- Acionar bipes curtos ou temporizados no buzzer.
- Ler o valor analógico do botão do potenciômetro.
- Medir a temperatura ambiente usando o sensor LM35.
O Arduino Uno R4 tem o mesmo formato do Uno R3 clássico, então o Multi-Function Shield encaixa direto, sem nenhuma ligação extra. O Uno R4 usa o microcontrolador Renesas RA4M1 (Minima) ou RA4M1 + ESP32-S3 (WiFi), oferecendo mais memória, clock mais rápido e um ADC de 14 bits em comparação com o Uno original.

Assista a este tutorial em vídeo, passo a passo, que demonstra todos os exemplos do Multi-Function Shield:
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) |
Sobre o Multi-Function Shield
O Multi-Function Shield reúne vários componentes em uma única placa que encaixa direto em qualquer conector compatível com o Uno. Veja o que está incluído:
- Um display de 7 segmentos e 4 dígitos controlado por um registrador de deslocamento 74HC595 — capaz de mostrar inteiros, decimais, letras A–Z e símbolos como o sinal de grau (°).
- Três botões de pressão (S1, S2, S3) ligados em lógica ativa em LOW com resistores de pull-up integrados — prontos para detectar pressionamentos e liberações com debounce.
- Quatro LEDs (D1–D4), também ativos em LOW — controláveis individualmente para ligar/desligar/alternar/piscar, além de uma função prática para piscar todos de uma vez.
- Um buzzer ativo em LOW — programável para bipes únicos ou sequências temporizadas.
- Um potenciômetro no pino analógico A0 — retorna contagens brutas do ADC ou uma leitura de 0–100%.
- Um sensor de temperatura LM35 no pino analógico A4 — fornece leituras em Celsius (remova o jumper J1 para habilitá-lo).
Como o Uno R4 mantém o layout de pinos clássico do Uno, todo o mapeamento de pinos é idêntico ao do Uno original:
| Função | Pino | Função | Pino |
|---|---|---|---|
| LED D1 | 13 | Botão S1 | A1 |
| LED D2 | 12 | Botão S2 | A2 |
| LED D3 | 11 | Botão S3 | A3 |
| LED D4 | 10 | Potenciômetro | A0 |
| Buzzer | 3 | Sensor de Temperatura LM35 | A4 |
| LATCH do Display | 4 | ||
| CLOCK do Display | 7 | ||
| DATA do Display | 8 |

Diagrama de Ligação
Não são necessários fios jumper nem protoboard — basta alinhar o Multi-Function Shield com os conectores do Uno R4 e pressioná-lo no lugar. O shield se encaixa na placa exatamente como no Uno R3 clássico.

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.
Como Instalar a Biblioteca
- Conecte o Arduino Uno R4 ao seu computador usando um cabo USB Type-C.
- Na Arduino IDE, verifique se a placa correta (Arduino Uno R4 Minima ou WiFi) e a porta serial estão selecionadas.
- Clique no ícone Libraries na barra lateral esquerda.
- Digite "DIYables_MultiFuncShield" na caixa de busca e localize a biblioteca publicada pela DIYables.
- Clique em Install para adicionar a biblioteca à sua IDE.

Nenhuma dependência adicional é necessária — a biblioteca é totalmente independente.
Estrutura Mínima do Sketch
Todos os sketches que usam o Multi-Function Shield compartilham este esqueleto:
Chamar MFS.begin() configura todos os componentes do shield. Chamar MFS.loop() a cada iteração mantém funcionando sem problemas a multiplexação do display, o debounce dos botões, a temporização do piscar dos LEDs e o agendamento do buzzer.
Exemplo do Display de 7 Segmentos
Este exemplo mostra como colocar números, floats, textos e símbolos especiais no display de 4 dígitos.
Como Executar
- Coloque o Multi-Function Shield sobre o Arduino Uno R4.
- Conecte a placa ao seu PC com um cabo USB Type-C.
- Abra a Arduino IDE e selecione a placa e a porta.
- Cole o código acima no editor.
- Pressione Upload.
O display vai passar por sete apresentações diferentes — um inteiro, um inteiro preenchido com zeros, um número de ponto flutuante, um texto, um texto com ponto decimal, um símbolo de grau e traços — trocando a cada 3 segundos.
Métodos do Display em Resumo
| Método | O Que Faz | Exemplo de Uso | ||
|---|---|---|---|---|
| print(int) | Mostra um valor inteiro | MFS.display.print(42) | ||
| print(int, true) | Mostra um inteiro com zeros à esquerda | MFS.display.print(42, true) → 0042 | ||
| print(float, dp) | Mostra um número de ponto flutuante | MFS.display.print(3.14, 2) | ||
| print(text) | Mostra um texto (A-Z, 0-9, -, _) | MFS.display.print("HELP") | ||
| setNumber(pos, val) | Coloca um dígito em uma posição (1–4) | MFS.display.setNumber(1, 5) | ||
| setChar(pos, ch) | Coloca um caractere em uma posição | MFS.display.setChar(2, 'A') | ||
| setChar(pos, SegChars) | Coloca um símbolo especial | MFS.display.setChar(3, SegChars | DEGREE) | |
| setDot(pos) | Acende o ponto em uma posição | MFS.display.setDot(2) | ||
| clear() | Apaga o display inteiro | MFS.display.clear() | ||
| show() | Envia as alterações manuais ao display | MFS.display.show() |
As sobrecargas de print() chamam show() internamente. Ao montar um display manualmente com setNumber(), setChar() ou setDot(), chame clear() primeiro e show() no final.
Caracteres especiais suportados por meio de SegChars: DASH, UNDERSCORE, C, E, F, DEGREE.
Exemplo dos Botões
Detecte quando cada botão é pressionado ou solto e imprima o evento pela Serial.
Como Executar
- Cole o código na Arduino IDE e pressione Upload.
- Abra o Serial Monitor.
- Tente pressionar e soltar S1, S2 e S3 — cada evento é impresso assim que acontece.
Métodos dos Botões em Resumo
| Método | O Que Faz |
|---|---|
| isPressed() | Retorna true no momento em que o botão é pressionado |
| isReleased() | Retorna true no momento em que o botão é solto |
| setDebounceTime(ms) | Ajusta a janela de debounce (50 ms por padrão) |
Cada botão tem debounce automático e usa lógica ativa em LOW com pull-up interno. Referencie cada botão com MFS.button1 / MFS.button2 / MFS.button3, ou use o acesso por índice MFS.button(1) até MFS.button(3).
Exemplo dos LEDs
Acenda os quatro LEDs em sequência e depois faça todos piscarem juntos.
Como Executar
- Cole o código na Arduino IDE e pressione Upload.
Veja os LEDs acenderem um de cada vez com um intervalo de meio segundo e depois os quatro começarem a piscar em uníssono.
Métodos dos LEDs em Resumo
| Método | O Que Faz |
|---|---|
| turnON() | Liga o LED |
| turnOFF() | Desliga o LED |
| toggle() | Inverte o estado atual |
| blink(interval) | Pisca com duração igual ligado e desligado |
| blink(onTime, offTime) | Pisca com durações personalizadas ligado e desligado |
| isOn() | Retorna true quando o LED está aceso |
Atalhos para o grupo todo disponíveis em MFS:
| Método | O Que Faz |
|---|---|
| allLedsOn() | Acende os quatro LEDs |
| allLedsOff() | Apaga os quatro LEDs |
| allLedsBlink(interval) | Pisca os quatro LEDs juntos |
| allLedsBlink(onTime, offTime) | Pisca todos com tempos personalizados |
Os LEDs operam em modo ativo em LOW. Use MFS.led1 até MFS.led4 ou a forma indexada MFS.led(1) até MFS.led(4).
Exemplo do Buzzer
Toque um bipe curto em intervalos regulares.
Como Executar
- Cole o código na Arduino IDE e pressione Upload.
Um bipe breve soa a cada 2 segundos.
Métodos do Buzzer em Resumo
| Método | O Que Faz |
|---|---|
| beep(ms) | Produz um bipe com a duração indicada em milissegundos |
| beep(ms, delayMs) | Espera delayMs e depois toca por ms |
| stop() | Silencia o buzzer imediatamente |
| isBeeping() | Retorna true enquanto o buzzer está ativo |
Exemplo do Potenciômetro
Leia o potenciômetro e imprima o valor e a porcentagem pela Serial.
Como Executar
- Cole o código na Arduino IDE e pressione Upload.
- Abra o Serial Monitor.
- Gire o botão do potenciômetro e veja o valor ser atualizado no monitor.
Métodos do Potenciômetro em Resumo
| Método | Tipo de Retorno | O Que Faz |
|---|---|---|
| readPot() | int | Leitura bruta do ADC (0–16383 no ADC de 14 bits do Uno R4) |
| readPotPercent() | float | Porcentagem escalada de 0.0 a 100.0 |
Exemplo do Sensor de Temperatura (LM35)
Leia o sensor LM35 e mostre a temperatura em Celsius no display e no Serial Monitor.
Lembre-se: O jumper J1 deve ser removido do shield antes de usar o sensor LM35, porque o pino A4 é compartilhado com a linha SDA do I2C.
Como Executar
- Retire o jumper J1 do Multi-Function Shield.
- Cole o código na Arduino IDE e pressione Upload.
- Abra o Serial Monitor.
- A temperatura atual aparece no display e é impressa pela Serial.
Os valores de temperatura são suavizados com uma média móvel de 4 amostras. Na primeira leitura, o buffer é preenchido previamente para que você tenha um valor estável imediatamente.
Multi-Function Shield com Arduino Uno R4 - Demonstração Completa
Abaixo está um tutorial em vídeo, passo a passo, que demonstra todos os exemplos do Multi-Function Shield:
Suporte de Plataformas
A biblioteca suporta todas as plataformas Arduino (architectures=*).