0

Como criar um Rádio FM com o Arduino

Hoje vamos ver como podemos como criar um Rádio FM com o Arduino.

 

Se és daqueles que gosta de ouvir rádio então este é um dos projetos a seguir para criares o teu próprio rádio FM, com sintonia de frequências, etc.
Neste caso o componente principal é o módulo Rádio FM Stereo TEA5767, que usamos para fazer o artigo de hoje.
Esse módulo se caracteriza pelo baixo consumo de energia, e sintoniza a frequência FM de 76 à 108 MHz. Possui duas ligações para Jacks 3.5mm, um para ligação da antena, e outro para ligação dos phones ou colunas se Som.

 

Detalhes do Modulo TEA5767:


O módulo rádio FM stereo TEA5767 é alimentado a 5V e é controlado pelo CI TEA5767 (datasheet).

A comunicação com o Arduino é feita pela interface I2C, utilizando apenas dois pinos. No Arduino Uno, os pinos da interface I2C são os pinos analógicos 4 (SDA), e 5 (SCL). No Arduino Mega, são os pinos 20 (SDA) e 21 (SCL).

 

Circuito Rádio FM Arduino com o TEA5767:
Para testar esse módulo, vamos montar um rádio FM com o seguinte material:

– Arduino Uno
– Módulo Radio FM TEA5767
– Display LCD 16×2
– Módulo I2C para display LCD
– Potenciômetro 10K para ajuste da frequência/sintonia

 

Infelizmente esse módulo não tem controlo de volume, sendo necessário ligar a um amplificador de som simples, a uns headphones com regulação ou ligar às colunas de PC.
Deve montar os componentes conforme o esquema abaixo:

 

 

Circuito Arduino Uno + I2C + LCD 16×2 + TEA5767:
Para o programa, vamos utilizar as bibliotecas LiquidCrystal_I2C (download) e TEA5767Radio (download). Descompacte o arquivo ZIP e renomeie a pasta LiquidCrystal para LiquidCrystalI2C, copiando-a para a pasta LIBRARIES da IDE do seu Arduino. Renomear a pasta evita conflitos com a biblioteca LiquidCrystal que já vem embutida na IDE.

A pasta da biblioteca TEA5767Radio, após ser descompactada, pode ser copiada diretamente para a pasta LIBRARIES da IDE.

No programa, vamos ler o valor do potenciómetro ligado à porta analógica A0 e converter o valor lido para uma frequência entre 87,5 e 108. Essa frequência é usada para sintonizar o rádio, por meio do comando radio.setFrequency(), na linha 47 do programa.

 

Código a utilizar:

#include <Wire.h>
#include <TEA5767Radio.h>
#include <LiquidCrystal_I2C.h>

TEA5767Radio radio = TEA5767Radio();

double frequencia = 87.5;
double frequencia_ant = 87.5;

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup()
{
  Serial.begin(9600);
  Wire.begin();
  //Informacoes iniciais
  lcd.begin (16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Arduino FM Radio");
  Serial.println("Arduino FM Radio ");
}

void loop()
{
  //Le as informacoes do potenciometro
  int valor_pot = analogRead(A0);

  //Calcula a nova frequencia
  frequencia = ((double)valor_pot * (108.0 - 87.5)) / 1024.0 + 87.5;
  frequencia = ((int)(frequencia * 10)) / 10.0;

  //Caso a frequencia seja alterada, efetua a mudanca e
  //mostra as novas informacoes no display
  if (frequencia_ant != frequencia)
  {
    lcd.setCursor(0, 1);
    lcd.print("Freq: ");
    lcd.setCursor(6, 1);
    lcd.print("     MHz");
    lcd.setCursor(6, 1);
    lcd.print(frequencia, 1);
    Serial.print("Frequencia: ");
    Serial.println(frequencia);
    radio.setFrequency(frequencia);
    frequencia_ant = frequencia;
  }
}

Cada vez que o potenciómetro é regulado, o rádio é sintonizado na nova frequência e os valores são atualizados tanto no display LCD como no serial monitor.
Para o controle da sintonia, podem utilizar botões (push-button, por exemplo), ou até mesmo um encoder.

Espero que gostem do artigo, ficamos à espera que contribuam com projetos vossos!

—————
Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Comments

Comentários

ArduinoPortugal.pt

Deixar uma resposta