Como montar um receptor FM digital com ESP32

📻 Como montar um receptor FM digital com ESP32

Você sabia que dá para transformar o seu ESP32 em um receptor de rádio FM digital?
Neste artigo mostro como, de forma simples e prática, você pode montar um rádio FM usando o ESP32 junto com o chip RDA5807M, muito usado em projetos de rádio estéreo por ser barato, pequeno e fácil de programar.


🔧 O que você vai precisar

  • ESP32 DevKit (qualquer versão serve).

  • Módulo receptor FM RDA5807M.

  • Fones de ouvido ou módulo amplificador PAM8403.

  • Fio de ±75 cm para servir como antena.

  • Protoboard e jumpers para as conexões.


📡 Como funciona?

O ESP32 não consegue demodular FM sozinho, pois não tem um front-end de rádio.
Por isso usamos o RDA5807M, que faz todo o trabalho pesado:

  1. Recebe o sinal de rádio FM pela antena.

  2. Faz a demodulação e gera áudio estéreo pronto.

  3. O ESP32 controla via I²C (ajustando frequência, volume e até RDS (Radio Data System)  ).

  4. O áudio sai em saída analógica estéreo (LOUT e ROUT) e pode ser conectado a fones ou amplificador.


🔌 Ligações ESP32 ↔ RDA5807M

ESP32RDA5807M
3V3VCC
GNDGND
GPIO21SDA
GPIO22SCL
LOUT → saída de áudio (esquerda)
ROUT → saída de áudio (direita)
ANT → fio de ±75 cm como antena

⚠️ Importante: ligue o RDA5807M sempre em 3.3V, nunca em 5V.


💻 Código exemplo (Arduino IDE)

Para controlar o rádio, você deve usar a  biblioteca RDA5807M Arduino na IDE para Arduino.
Depois de instalar, use o seguinte código básico:

#include <Wire.h>
#include <RDA5807M.h>

RDA5807M radio;

 void setup() {
                        Serial.begin(115200);
                        Wire.begin();
                         radio.init();
                          radio.setVolume(6); // Volume de 0 a 15
                          radio.setFrequency(10150); // Freq. em 0.01 MHz (ex:101.5 MHz)
                          Serial.println("Rádio FM iniciado!");
                }
  void loop() {
                         // Exemplo: mudar de estação a cada 10s
                         delay(10000);
                         static int freq = 10150;
                         freq += 20; // +0.2 MHz
                          if (freq > 10800) freq = 8750; // volta para o início
                          radio.setFrequency(freq);
                          Serial.print("Sintonizando: ");
                         Serial.println(freq / 100.0);
                }

🔊 Como ouvir

  • Para fones de ouvido: conecte LOUT e ROUT direto nos fones (colocar resistores de 100Ω em série ajuda a proteger).

  • Para alto-falantes: use um amplificador de áudio (exemplo: PAM8403).

  • Não esqueça da antena de fio: sem ela a recepção será fraca.


🎯 Conclusão

Com apenas um ESP32, um módulo RDA5807M e alguns fios, você consegue montar seu próprio rádio FM digital controlado por software.
Esse projeto é ótimo para aprender sobre comunicação I²C, integração de módulos de rádio e até criar interfaces interativas no display para escolher estações.

👉 Próximos passos que você pode explorar:

  • Adicionar um display OLED para mostrar a frequência.

  • Implementar botões físicos para trocar de estação.

  • Ler e exibir RDS (nome da rádio, músicas, etc.).

📻 O que é RDS?

O RDS (Radio Data System) é um recurso presente em muitas estações de rádio FM.
Ele transmite informações digitais junto com o áudio, como:

  • 📌 Nome da rádio (ex: “Rádio Rock 89”).

  • 🎶 Nome da música ou artista que está tocando.

  • 📰 Mensagens curtas enviadas pela emissora.

  • Informações de hora e tráfego (em alguns casos).

O módulo RDA5807M suporta a leitura de dados RDS.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *