Como Usar o Módulo Rádio FM Stereo TEA5767
O 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.
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
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!