The TEA5767 Module is a single-chip FM Radio IC circuit designed for low-voltage applications, making it ideal for use in embedded systems and microcontroller platforms like Arduino and other 3.3V development boards. This versatile chip includes intermediate frequency selectivity and an integrated FM demodulator. Its ease of interfacing compatibility with the I2C communication protocol makes it straightforward to connect to other development boards. With minimal additional components, it can function as a stand-alone radio receiver. The TEA5767 supports a frequency range of 88MHz to 108MHz, allowing it to tune into FM stations in India, Japan, Europe, and the United States.

Specifications:

  • Operating voltage: 3.3V
  • Interface: I2C using SDA & SCL pins
  • High sensitivity with a low-noise input amplifier.
  • RF AGC (Automatic Gain Control) for signal optimization.
  • Standby Mode and Soft Mute for power-saving and audio control.
  • Stereo decoding without manual adjustments.
  • Precise tuning using a Phase Locked Loop synthesizer.
  • Integrated FM IF selectivity and LC Tuner Oscillator with low-cost chip inductors.
  • Complete FM demodulator for seamless signal processing.
  • Crystal reference frequency oscillator for accuracy.
  • I2C interface for easy integration.
  • Supports a frequency range of 76MHz to 108MHz, covering various FM stations.

Pinout & Parts Description of TEA5767 FM radio Module

There are a total of 10 pins on this module

TEA5767 FM Radio Module  Pinout
  1. SCL (Serial Clock): This is the clock pin for I2C communication. Connect it to the SCL pin on your Arduino or microcontroller.
  2. SDA (Serial Data): This is the data pin for I2C communication. Connect it to the SDA pin on your Arduino or microcontroller.
  3. BUS or MODE: This pin selects the communication mode (I2C or Serial). Connect it to ground (GND) for I2C mode, or leave it unconnected for Serial mode.
  4. W/R (Write/Read): This pin determines whether you are writing data to the module or reading data from it. Connect it to ground (GND) for write mode or leave it unconnected for read mode.
  5. VCC (Voltage Supply): Connect this pin to the power supply voltage (typically 3.3V or 5V, depending on the module's specifications).
  6. ANT (Antenna): Connect an external FM antenna to this pin for better reception. If you don't have an FM antenna, you can use a simple wire as an antenna.
  7. MPXO (Multiplex Output): This pin provides the demodulated audio output signal. Connect it to an audio amplifier or speaker for audio output.
  8. Left & Right Out (L & R Out): This pin provides the audio signal for the left as well as Right audio channel when the TEA5767 module is operating in stereo mode. Connect it to the input of an audio amplifier or speaker circuit for the left channel.
  9. GND (Ground): Connect this pin to the ground (GND) of your power supply or microcontroller.

Interfacing TEA5767 FM module with Arduino

The Module communicates via I2C communication with Arduino using SDA & and SCL pins. We are integrating a 16*2 LCD for monitoring the current frequency of the channel while changing the channel using push buttons. We use the LM386 audio amplifier module for output sound amplification.

Components Required:

Arduino Nano TEA5767 Module Circuit Connections:

TEA5767 FM radio module circuit diagram

The TEA5767 module has to be soldered on a PCB to fit on the breadboard.

  • Vcc and Gnd of the sensor connect to the 3.3v and Ground of the Arduino. Also, the BUS pin should be grounded.
  • The SDA and SCL of the sensor are connected to the A4 & and A5 pins on the Nano board which is used to communicate with Arduino.
  • The Left and Right Out are connected to amplifier input terminals. If you are using Stereo then use Both otherwise the single channel is also okay.
  • ANT pin connects to any simple radio antenna, or else a simple wire also works.

16x2 LCD connection:

We are using an I2C serial adaptor for interfacing the LCD through I2C communication.

  • The VCC and GND should be connected to the 5v power pin and Ground of the Arduino.
  • The SDA & SCL pins of LCD connected to the A4 and A5 pins on Nano.

Push Button Connections:

We are here using two push buttons:

  • One end of each push button is connected to the 5v in series with a 10k ohm resistor whereas the other end is directly to the ground.
  • Now, the data pin D5 & D6 have connections directly to the +ve end of the switch after the resister.

Amplifier Board connection:

We are using the single channel i.e., mono audio. Hence, the module LM386 is the perfect choice.

  • Power the LM386 board using 5v and GND of the Arduino while connecting the input pin to any out-channel of the TEA5767 module.
  • Connect any 4ohm,8ohm or 16ohm speaker to the output of the LM386 Board.
TEA5767 FM Radio Module interfacing with Arduino

 

Arduino TEA5767 FM Module Code 

Due to the two devices connected to the Arduino, we need to specify the I2C Address of the devices. We are using the Inbuilt TEA5767 library which has an Inbuilt I2C Address as well as various functions to operate the module.

Additionally, we set up our push buttons as INPUT_PULLUP for better functioning. If conditions we have used to Increase or decrease the frequency by 0.1 when the buttons are pressed.

 

#include <LiquidCrystal_I2C.h>

#include <TEA5767Radio.h>

 LiquidCrystal_I2C lcd(0x27, 20, 4);

TEA5767Radio radio;

 // Define button pins

const int Button_next = 5;

const int Button_prev = 6;

 double currentFrequency = 91.1; // Initial frequency in MHz

 void setup()

{ lcd.init();

  lcd.backlight();

  lcd.setCursor(0, 0);

  lcd.print("FM Receiver");

  lcd.setCursor(0, 1);

  lcd.print("Frequency: ");

 radio.setFrequency(currentFrequency); // Set the initial frequency to 87.5 MHz       (frequency in 100 kHz units)

   pinMode(Button_next, INPUT_PULLUP);

  pinMode(Button_prev, INPUT_PULLUP);

}

 void loop()

{ lcd.setCursor(11, 1);

  lcd.print(currentFrequency, 1); // Display the current frequency on the LCD in MHz

  // Check for button presses and control the radio

  if (!digitalRead(Button_next))

  { currentFrequency += 0.1;

    radio.setFrequency(currentFrequency);

    delay(100);

  }

  if (!digitalRead(Button_prev))

  { currentFrequency -= 0.1;

    radio.setFrequency(currentFrequency);

    delay(100);

  }

}

 Demonstration of Arduino TEA5767 FM Radio Module Working

  • Check All the connections carefully and make sure no wire getting loose.
  • Upload the Code after changes inside the code according to the changes made in your hardware.
  • Place the Antenna properly and don’t forget to increase the volume if you do not hear any noisy sound.
  • Select the correct frequency used in your Area to broadcast the FM. Now, you can enjoy your DIY FM Receiver.
TEA5767 FM Radio Module interfacing with Arduino

 

I hope you liked and enjoyed the project and learned something valuable from it. If you have any questions, you can leave them in the comment section below.

Leave a comment

Please note, comments must be approved before they are published

Your cart

×