Construa um Receptor FM Potente com Arduino e Módulo TEA5767
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino Micro | 1 |
| Módulo TEA5767 | 1 |
| Display LCD Arduino (Nokia 5110) | 1 |
| Potenciômetro Rotativo 10k ohm | 1 |
| Amplificador de Áudio LM386 | 1 |
| Alto-falante 3W | 1 |
| Protoboard Grande | 1 |
| Cabo de Áudio | 1 |
| Jumpers (genéricos) | 1 |
| Transmissor FM (para teste) | 1 |
Aplicativos e Serviços Online
- Arduino IoT Cloud
Sobre o Projeto
Introdução
Neste tutorial, vamos construir um receptor FM simples em protoboard. Assista ao vídeo anexo para ouvir a rádio funcionando. Estou transmitindo faixas do YouTube usando um transmissor FM barato. Uso o display Nokia 5110 para mostrar frequência selecionada, intensidade do sinal e ícone estéreo. O cérebro do projeto é o pequeno e barato Arduino Nano. Controlamos o volume com um potenciômetro e a frequência com outro. Projeto fascinante e relativamente fácil.
Passo 1: Obtenha Todas as Peças
- Arduino Nano
- Módulo Rádio FM (TEA5767)
- Display Nokia 5110 LCD
- Potenciômetro 10K (x2)
- Amplificador de Áudio LM386
- Alto-falante 3W
- Protoboard Grande
- Cabo de Áudio
- Jumpers
- Fios 3 em 1
- Transmissor FM (opcional, para teste)
- Power Bank
Custo total: ~US$ 15.
Passo 2: Display Nokia 5110 LCD
Meu display favorito para projetos Arduino. Originalmente para celulares, usa controlador PCD8544 (baixo consumo). Consome 0.4mA ligado (backlight desligado), <0.06mA em sleep. Interface serial bus, fácil com Arduino (8 fios). Custo ~US$ 4. Tenho tutorial detalhado em vídeo.
Passo 3: Módulo FM TEA5767
O coração do projeto. Chip TEA5767 usa interface I2C, simples com Arduino. O módulo tem amplificador de áudio, mas é para fone de ouvido (sinal fraco). Precisamos amplificar para alto-falante. Não há controle de volume por software, usaremos potenciômetro. Duas saídas P2: uma para antena, outra para fone. Vem com antena pequena, mas pode fazer a sua.
Passo 4: Conectando as Peças
Monte o circuito conforme o esquemático. Coloque todas as peças na protoboard. Conecte GND de tudo ao trilho negativo e VCC ao positivo (exceto potenciômetro de volume).
Módulo Rádio: SLC → A5, SDA → A4 (I2C).
Potenciômetro de frequência: pino central → A0.
Potenciômetro de volume: Use cabo de áudio. Conecte uma ponta na saída de áudio do módulo. Corte a outra ponta: há 4 fios. O módulo sai estéreo, mas usamos um canal. Conecte dois fios: GND e sinal de áudio (que precisa amplificar). Sinal → pino de entrada do potenciômetro de volume. Pino central → sinal de saída.
Amplificador LM386: Sinal de áudio → entrada do LM386. GND do cabo → GND do LM386. Alimente o LM386 (VCC e GND nos trilhos da protoboard). Conecte alto-falante na saída do LM386. O potenciômetro no módulo LM386 controla ganho.
Display Nokia 5110:
- RST → D12
- CE → D11
- DC → D10
- DIN → D9
- CLK → D8
- VCC → 3.3V
- LIGHT → GND (backlight ligado)
- GND → GND
Opcional: Capacitor 330μF na protoboard para reduzir ruído no áudio.
Ao ligar, aparece tela de splash por 3 segundos, depois sai som. Qualidade não é a melhor com esse alto-falante/amplificador. Com alto-falante comercial com amplificador embutido, qualidade fica perfeita. O sinal do módulo é bom; o amplificador e alto-falante que usei degradam a qualidade. Vou buscar melhores.
Passo 5: Código do Projeto
Usamos duas bibliotecas: Nokia5110 graph library e biblioteca para TEA5767.
Funcionamento: inicializa rádio e display, mostra splash por 3s. A tela de splash foi feita no Photoshop. Veja vídeo tutorial para enviar gráficos ao Nokia 5110.
void setup() {
radio.setMonoReception();
radio.setStereoNoiseCancellingOn();
initScreen();
showSplashScreen();
Serial.begin(9600);
}
No loop, lemos o potenciômetro de frequência a cada poucos ms. Mapeamos valor analógico (2-1014) para frequência (87.0-107.0 MHz). Como a leitura analógica flutua, só sintonizamos se a frequência mudar significativamente (>= 0.1 MHz). Então sintonizamos, lemos intensidade do sinal, exibimos ícone estéreo se houver, e mostramos a frequência.
frequencyInt = map(val, 2, 1014, 8700, 10700);
float frequency = frequencyInt / 100.0f;
if (frequency - previousFrequency >= 0.1f || previousFrequency - frequency >= 0.1f) {
lcd.clrScr();
radio.selectFrequency(frequency);
printSignalStrength();
printStereo();
printFrequency(frequency);
previousFrequency = frequency;
}
Código simples mas funcional. Versão mais recente em: https://educ8s.tv/arduino-fm-radio-project
Passo 6: Considerações Finais
Em cerca de meia hora, construímos um rádio FM em protoboard. Legal, né?
Qualidade de áudio ainda não é ótima. Vou melhorar: testar outros amplificadores/alto-falantes, mover para placa de prototipagem permanente, projetar gabinete retro impresso em 3D, melhorar código (ex: sintonia fina). Consumo ~50mA (backlight desligado), pode ser reduzido para operação a bateria. Resultado final será impressionante.
Deixe sua opinião nos comentários! Curta e compartilhe se achou interessante.
Esquemático

Processo de manufatura
- Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
- Construa uma Rádio Internet Wi‑Fi com Raspberry Pi e Arduino: Transmita Estações Globais
- Construa um Homem de Ferro com Arduino: Componentes, Sensores e Guia Passo a Passo
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- Construa um Braço Robótico 3D Impresso Funcional com Arduino – Guia Passo a Passo
- Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
- Construa um Rádio FM Compacto com Arduino Nano e RDA5807M
- Jogo Pong Neon em Matriz NeoPixel com Arduino Nano
- Volante Joystick Arduino Personalizado para Jogos
- Arduino 101: Construa um Pedômetro com Sensor DHT11 e Display LCD