loading

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.

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

*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!

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

<p>I like this</p><p>I want to do</p><p>I already bought the TEA579</p><p>thank you</p>
<p>Thanks for the interest my friend, dont' forget to show us your finalizated proyect! :)</p>
<p>I added a clock, an alarm clock and four preset stations.</p><p>Soon the explanation</p>
<p>For people liek you i'm keeping working, i'm really glad to know this, thank you!</p>
<p>Published</p><p><a href="https://www.instructables.com/id/ArduRadio-AlarmClock/">https://www.instructables.com/id/ArduRadio-AlarmCl...</a></p>
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.<br><br>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 !
<p>What is the language of the code? Thanks</p>
#C modified for the arduino enviroment development
<p>it's modified #C arduino languaje :)</p>
Cool.
<p>Thanks!</p>
Nice arduino work.<br>Keep up the good work
<p>Gracias, go ahead!!</p>
<p>Nice work Man</p>
<p>Thanks man, i'll do more proyect when i have more time :)</p>

About This Instructable

6,200views

128favorites

License:

Bio: Me gusta compartir los conocimientos, siempre me ha gustado la electronica y lo paranormal. Enjoy the life and be a good person!
More by erik_montesdeoca:Garbage Line Follower Robot! Make a Ghost Detector! Test Your Nerve!  
Add instructable to: