Como Usar o Módulo Rádio FM Stereo TEA5767

Módulo Rádio FM Stereo possui alta sensibilidade, estabilidade e baixo ruído. A frequência deste módulo varia entre 76-108MHz e inclui tuning automático.

Módulo Rádio FM Stereo

Neste artigo iremos aprender a usar este componente, para poder acompanhar este tutorial irá necessitar dos seguintes artigos:


Imagem Produto Comprar
Arduino Uno

Jumpers Macho-Fêmea

Cabos Jumper Macho-Macho

LCD 20X4 com I2C

2 Resistencias 1k

Rádio FM Stereo TEA5767

2 Botões de Pressão


Especificações do Modulo

  • Integra um díodo de proteção contra inversão de polaridade;
  • Possui um LED azul para indicação de alimentação;
  • Pode ligar a antena directamente na porta adequada da placa;
  • Comunicação I2C;
  • Chip: TEA5767;
  • Integra chip amplificador TDA1308;
  • Possui interface áudio 3.5mm.

Esquema de Montagem

Esquema de Montagem

Código Utilizado

/*Código do Recetor Rádio FM TEA5767
* Apresenta a emissora num display LCD I2C, sendo possível alterar a emissora 
* nos botões acoplados aos pinos 2 e 3
* Electrofun@2021 ---> www.electrofun.pt
*/

#include <TEA5767.h>
#include <LiquidCrystal_I2C.h>

//Variáveis necessárias
int numEmissora = 7;
int trocarEmissora = 1;
//Variáveis para debounce dos input's
long tempo_ultima_int = 0;
long tempo_int;

TEA5767 Radio;
LiquidCrystal_I2C lcd(0x27, 20, 4);

void setup() {
attachInterrupt(digitalPinToInterrupt(2), aumentarFreq, RISING); //Interrupções dos botões
attachInterrupt(digitalPinToInterrupt(3), diminuirFreq, RISING);
Radio.init(); //Iniciar o Módulo FM
lcd.init(); //Iniciar o LCD I2C
lcd.backlight();
}

void loop() {
if (trocarEmissora == 1) { //Se houver alteração nos botões para mudar de emissora
if (numEmissora == 0) { //Escolha da emissora a reproduzir e enviar para o Arduino
Radio.set_frequency(88.1); //Se houver necessidade de alterar as emissoras pré-definidas, basta alterar a frequência nesta linha e abaixo similares
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Radio 5 -> 88.1"); //E, nesta linha, alterar o nome da estação e a frequência, como o apresentado
trocarEmissora = 0;
} else if (numEmissora == 1) {
Radio.set_frequency(90.0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("M80 -> 90.0");
trocarEmissora = 0;
} else if (numEmissora == 2) {
Radio.set_frequency(91.0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("SBSR.FM -> 91.0");
trocarEmissora = 0;
} else if (numEmissora == 3) {
Radio.set_frequency(91.5);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("RDP Africa -> 91.5");
trocarEmissora = 0;
} else if (numEmissora == 4) {
Radio.set_frequency(92.5);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Antena 2 -> 92.5");
trocarEmissora = 0;
} else if (numEmissora == 5) {
Radio.set_frequency(93.7);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual");
lcd.setCursor(0, 2);
lcd.print("Renascenca -> 93.7");
trocarEmissora = 0;
} else if (numEmissora == 6) {
Radio.set_frequency(94.8);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Festival -> 94.8");
trocarEmissora = 0;
}
else if (numEmissora == 7) {
Radio.set_frequency(95.5);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Record FM -> 95.5");
trocarEmissora = 0;
} else if (numEmissora == 8) {
Radio.set_frequency(96.7);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Antena 1 -> 96.7");
trocarEmissora = 0;
} else if (numEmissora == 9) {
Radio.set_frequency(97.7);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Comercial -> 97.7");
trocarEmissora = 0;
}
else if (numEmissora == 10) {
Radio.set_frequency(98.9);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Radio Nova -> 98.9");
trocarEmissora = 0;
} else if (numEmissora == 11) {
Radio.set_frequency(100.4);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Antena 3 -> 100.4");
trocarEmissora = 0;
} else if (numEmissora == 12) {
Radio.set_frequency(101.3);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Nova Era -> 101.3");
trocarEmissora = 0;
} else if (numEmissora == 13) {
Radio.set_frequency(104.1);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("RFM -> 104.1");
trocarEmissora = 0;
} else if (numEmissora == 14) {
Radio.set_frequency(105.3);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("TSF -> 105.3");
trocarEmissora = 0;
} else if (numEmissora == 15) {
Radio.set_frequency(107.2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Frequencia Atual:");
lcd.setCursor(0, 2);
lcd.print("Cidade FM -> 107.2");
trocarEmissora = 0;
}
}
}

void aumentarFreq() {
tempo_ultima_int = 0;
tempo_int = millis();
//Código para debounce
if (tempo_int - tempo_ultima_int > 200)
{
numEmissora++;
if (numEmissora > 15) {
numEmissora = 0;
}
trocarEmissora = 1;
}
tempo_ultima_int = tempo_int;
}

void diminuirFreq() {
tempo_ultima_int = 0;
tempo_int = millis();
//Código para debounce
if (tempo_int - tempo_ultima_int > 200)
{
numEmissora--;
if (numEmissora < 0) {
numEmissora = 15;
}
trocarEmissora = 1;
}
tempo_ultima_int = tempo_int;
}

Para mais projetos, percorram o nosso blog, onde podem encontrar vários artigos interessantes relacionados com eletrónica, robótica e muito mais! Visitem também o nosso site, onde encontram tudo para eletrónica e robótica!

Veja o nosso video sobre este projeto: