TEA5767 FM Stereo Radio Module for Arduino 76-108MHZ With Free Cable Antenna
-
RM32.00
- Product Code: TEA5767 FM
- Availability: In Stock
The TEA5767 is an FM stereo radio module commonly used in electronics projects to receive FM radio broadcasts. This module is designed to receive FM radio signals in the frequency range of 76 MHz to 108 MHz. It's a compact and versatile solution for adding FM radio functionality to your projects or building standalone FM radios.
Key features and components:
FM Radio Reception: The TEA5767 module is designed to receive FM radio signals in the frequency range of 76 MHz to 108 MHz, which is the standard FM radio broadcast band in many countries.
Stereo Audio Output: This module is capable of providing stereo audio output, allowing you to listen to FM radio broadcasts in stereo when connected to appropriate speakers or headphones.
Digital Tuning: The TEA5767 module uses digital tuning to select and lock onto specific FM radio frequencies. This provides precise tuning control and minimizes drift.
Automatic Frequency Control (AFC): The module typically includes AFC functionality to automatically adjust the frequency and reduce drift when the signal is weak or unstable.
I2C Interface: The module communicates with a microcontroller or other host device through an I2C (Inter-Integrated Circuit) interface. This allows for easy control of tuning and other settings.
Antenna Connection: The module often includes an antenna connection point where you can connect an external antenna to improve signal reception. The "Free Cable Antenna" likely refers to an included antenna or a separate cable antenna you can use.
Power Supply: The module requires a DC power supply voltage within its specified operating range, which is usually around 2.5V to 5.0V, depending on the specific version.
Audio Output: The module provides audio output pins that can be connected to speakers or headphones for audio playback.
How it Works:
Here's a simplified explanation of how the TEA5767 FM stereo radio module works:
Antenna Connection: Connect an external antenna to the module's antenna connection point to improve signal reception. The antenna can be a simple wire antenna or a more specialized FM antenna.
Power Supply: Provide the module with the required DC power supply voltage to power its internal circuitry.
Digital Tuning: Use the I2C interface to send tuning commands to the module. The TEA5767 will lock onto the desired FM radio frequency and start receiving the broadcast.
Stereo Audio Output: Connect the audio output pins of the module to speakers or headphones to listen to the received FM radio broadcasts in stereo.
AFC Control: The module's AFC function helps maintain stable reception by automatically adjusting the frequency when necessary.
Applications:
The TEA5767 FM stereo radio module can be used in various applications, including: Building standalone FM radios. Adding FM radio functionality to electronics projects. Creating DIY radios and radio-controlled devices. Enhancing educational electronics projects related to radio and communication.
Technical Details:
Features:
Physical Attributes:
import smbus as smbus import subprocess import curses import curses.textpad import time i2c = smbus.SMBus(1) # newer version RASP (512 megabytes) i2c_address = 0x60 def init_radio(address): """initialize hardware""" i2c.write_quick(address) time.sleep(0.1) def set_freq(address, freq): """set Radio to specific frequency""" freq14bit = int (4 * (freq * 1000000 + 225000) / 32768) # Frequency distribution for two bytes (according to the data sheet) freqH = freq14bit>>8 #int (freq14bit / 256) freqL = freq14bit & 0xFF data = [0 for i in range(4)] # Descriptions of individual bits in a byte - viz. catalog sheets init = freqH # freqH # 1.bajt (MUTE bit; Frequency H) // MUTE is 0x80 data[0] = freqL # 2.bajt (frequency L) data[1] = 0xB0 #0b10110000 # 3.bajt (SUD; SSL1, SSL2; HLSI, MS, MR, ML; SWP1) data[2] = 0x10 #0b00010000 # 4.bajt (SWP2; STBY, BL; XTAL; smut; HCC, SNC, SI) data[3] = 0x00 #0b00000000 # 5.bajt (PLREFF; DTC; 0; 0; 0; 0; 0; 0) try: i2c.write_i2c_block_data (address, init, data) # Setting a new frequency to the circuit print("Frequency set to: " + str(freq)) except IOError: subprocess.call(['i2cdetect', '-y', '1']) def mute(address): """"mute radio""" freq14bit = int(4 * (0 * 1000000 + 225000) / 32768) freqL = freq14bit & 0xFF data = [0 for i in range(4)] init = 0x80 data[0] = freqL data[1] = 0xB0 data[2] = 0x10 data[3] = 0x00 try: i2c.write_i2c_block_data(address, init, data) print("Radio Muted") except IOError: subprocess.call(['i2cdetect', '-y', '1']) if __name__ == '__main__': init_radio(i2c_address) frequency = 101.1 # sample starting frequency # terminal user input infinite loop stdscr = curses.initscr() curses.noecho() try: while True: c = stdscr.getch() if c == ord('f'): # set to 101.1 frequency = 101.1 set_freq(i2c_address, frequency) time.sleep(1) elif c == ord('v'): # set to 102.1 frequency = 102.1 set_freq(i2c_address, frequency) time.sleep(1) elif c == ord('w'): # increment by 1 frequency += 1 set_freq(i2c_address, frequency) time.sleep(1) elif c == ord('s'): # decrement by 1 frequency -= 1 set_freq(i2c_address, frequency) time.sleep(1) elif c == ord('e'): # increment by 0.1 frequency += 0.1 set_freq(i2c_address, frequency) time.sleep(1) elif c == ord('d'): # decrement by 0.1 frequency -= 0.1 set_freq(i2c_address, frequency) time.sleep(1) elif c == ord('m'): # mute mute(i2c_address) time.sleep(1) elif c == ord('u'): # unmute set_freq(i2c_address, frequency) time.sleep(1) elif c == ord('q'): # exit script and cleanup mute(i2c_address) curses.endwin() break except KeyboardInterrupt: mute(i2c_address) curses.endwin()
Documentation: