Introduction: Make an Arduino FM Radio! (using TEA5767)

Picture of Make an Arduino FM Radio! (using TEA5767)

Hi guys from Instructables, In this tutorial i'll show you how to make a FM digital Radio easily using arduino uno (or any other arduino board), and the TEA5667 Fm Radio module, and audio amplifier and a LCD 16X2.

Let´s start !

Step 1: Block Diagram & Connections.

Picture of Block Diagram & Connections.

First, the part list of needed electronic components:

-Arduino UNO, or any other similar board friendly with the arduino enviroment.

-TEA5767 FM Radio module

-16X2 LCD

-2 Buttons Normally open (NA) or push buttons

-330 ohms resistor

-2x 10 k ohms reisistor

-Jumper wires

-Switch for to power on the radio

-Led(as a power on indicator).

-A free weekend or day :)

Step 2: Arduino Program & Libraries

Picture of Arduino Program & Libraries

*First you'll need to install the librarys on the arduino IDE and later compile and upload the program*

The code in text is here:

/*+-10--9--8--7--6-+
|  +------+  ++  |
|  | TEA  |  ||  |
|  | 5767 |  ||  |
|  +------+  ++  |
+--1--2--3--4--5-+

1 ----> Arduino SDA (pin A5 arduino uno)
2 ----> Arduino SCL (pin A4 arduino uno)
3 ----> GND
5 ----> +3.3 V
6 ----> GND
7 ----> Audio out (right channel)
8 ----> Audio out (left channel)
10 ---> Antenna 
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * ends to +5V and ground
 * UP SEARCH (A0)
 * DOWN SEARCH (A1)
 * ALL RESISTOR ARE 10K AND PUSH BUTTON IN PULL DOWN MODE
 */

#include<Wire.h>

#include <TEA5767Radio.h> 

#include <LiquidCrystal.h>

TEA5767Radio radio = TEA5767Radio();            
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);              
float frequency = 0;                            
int fUP = A0;                                   
int fDOWN = A1;                                
int count = 0;                                   
void setup()
{
  delay(1000);
  Wire.begin();
  frequency = 91.1;                       //starting frequency
  radio.setFrequency(frequency);
  lcd.begin(16,2);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("FM: ");
  lcd.setCursor(0, 1);
  lcd.print(frequency);
}void loop()
{
  
  if(digitalRead(fUP))                      
  {
    count=0;
    while (digitalRead(fUP))
    {
      count++;
      if(count > 0 && count <= 6)          
      {
        frequency += 0.1;
        frequencyUpdate();
        delay(200);
      }
      else if (count > 6 && count <= 2)   
      {
        frequency += 0.1;
        frequencyUpdate();
        delay(80);
      }
      else                                
      {
        frequency += 0.1;
        frequencyUpdate();
        delay(5);
      }
    }}
  
  
  
   if(digitalRead(fDOWN))                   
   {
     count = 0;
    while (digitalRead(fDOWN))            
    {
      count--;
      if(count < 0 && count >= -6)
      {
        frequency -= 0.1;
        frequencyUpdate();
        delay(200);
      }
      else if (count < -6 && count >= -12)
      {
        frequency -= 0.1;
        frequencyUpdate();
        delay(80);
      }
      else                                 
      {
        frequency -= 0.1;
        frequencyUpdate();
        delay(5);
      }
    }
   }  
  
}
void frequencyUpdate()                    //this function changes the frequency of the station, is called by preset and frequency up/down conditions.
{
  frequency = constrain(frequency, 88.0, 108.0);
  lcd.setCursor(0,0);
  lcd.print("ESTACION DE FM:");
  lcd.setCursor(0,1);
  lcd.print(frequency);
  radio.setFrequency(frequency);
}

Step 3: Final Pictures!

Picture of Final Pictures!

Here some nice pictures and teh radio with the shield totally functional!

ESPECIAL NOTES:

*Remember to use an a good audio amplifier for the output of the TEA5767 FM Radio Module

*Vcc= 3.3 TO 5 Volts maximun for the power of the TEA5767 Radio Module

*To use a good onmidirectional antenna

*The radio doesn't have an automatic searh for the FM stations but it's modifficable by the program

Comments

tittiamo68 (author)2016-12-24

I like this

I want to do

I already bought the TEA579

thank you

Thanks for the interest my friend, dont' forget to show us your finalizated proyect! :)

tittiamo68 made it! (author)erik_montesdeoca2017-04-11

I added a clock, an alarm clock and four preset stations.

Soon the explanation

For people liek you i'm keeping working, i'm really glad to know this, thank you!

tclayton (author)2017-03-17

Question: say youre putting left and right audio to an amp, would you run one of the ground pins to the audio input on the amp?

If the amp is stereo you can connect each wire to each channel, but if you amp is mono put a 10 ohms resistor on the output of thr two channels and solder it together

I ended up figuring it out it was a silly question i should have known since ive built many amps from scratch.

Origionally i could not get this sketch to work but its because i was not using the right pins for sda and scl (i had an ardruino mega). I tried 4 other sketches before i found that out then got other ones to work but ultimately went back to your design and it is by far the best and cleanest signal with your code ! Im working on making an fm radio with aux and bluetooth and also display time and temp/humidity on the lcd (although im not sure how to code in all the screen changes). Thanks for this tutorial !

alai5 (author)2017-01-27

What is the language of the code? Thanks

erik_montesdeoca (author)alai52017-04-06

#C modified for the arduino enviroment development

erik_montesdeoca (author)alai52017-02-18

it's modified #C arduino languaje :)

Mjtrinihobby (author)2016-12-22

Cool.

Thanks!

Droxz (author)2016-12-22

Nice arduino work.
Keep up the good work

erik_montesdeoca (author)Droxz2017-01-03

Gracias, go ahead!!

JunezRiyaz (author)2016-12-23

Nice work Man

Thanks man, i'll do more proyect when i have more time :)

About This Instructable

8,561views

138favorites

License:

Bio: I am very athletic and enjoy sports. I often participate in many different activities and love to be busy all day. I enjoy to wake ... More »
More by erik_montesdeoca:MAKE a 1.5V AM RADIO! Garbage Line Follower Robot!Make a Ghost Detector!
Add instructable to: