Electronics

FM Radio Station Transmitter Module for Arduino

Out Of Stock

1

Description

The FM transmitter is constructed with a KT0803 K-based board and is controlled by the well-known Arduino UNO. It uses Frequency Modulation, which ranges from 70MHz to 108MHz, to convey our voice. KTMicro's monolithic digital stereo FM transmitter IC KT0803K is capable of generating standard FM frequencies between 70 and 108 MHz with an ultra-low power consumption of 17mA from a single power supply. The microcontroller unit may set the channel frequency and operate the KT0803K as a slave via I2C wires (SDA, SCL). this IC has a 20-bit Audio ADC on-chip. The on-chip DSP core is capable of processing digital audio signals. The output of the FM modulator is amplified by the RF power amplifier and sent to the antenna through the RF out pin. This IC has a 16-pin SOP packaging, a 1.6 V to 3.6 V working voltage range, and is a suitable IC for programmable FM transmission.
 
Specifications::
  • I2C interface 5V TTL compatible
  • Plug and play
  • Onboard MIC
  • VCC Input: 3.0V ~ 5.0V

 

This module contains a stereo input jack for audio input from an external device, as well as an inbuilt microphone to pick up our speech. The audio signal from the microphone is amplified and applied to the tx IC through a 9013 NPN transistor. This module's clock is a 32.768 K Crystal. This FM module is controlled by two-wire standard I2C-Microcontrollers, and the KT0803K does not require external tuning.  Connect the Arduino board to the FM transmitter module.  The module's Vcc pin is linked to the 3.3V power supply pin on the Arduino board, and the ground pin is connected to the Arduino board's GND pin. Because these two are I2C pins on the Uno board, I2C pins SDA and SCL are linked to A4 and A5 of the Arduino UNO board. It varies depending on the type of Arduino board and microcontroller used; if another board is used, verify the pin information.

Arduino FM transmitter Connections:

Arduino
FM Module
GND
GND
5V
VCC
SDA
A4
SCL
A5

Arduino Code – FM transmitter

First, you need to download the Library by Clicking Here

add the Library to the Arduino IDE then upload the next sample code

#include 

float fm_freq = 90;  // Here set the default FM frequency
void setup(void)
{

  Serial.begin(9600);
  Serial.print("FM-TX Demo\r\n");
  /**
  Initial, set FM channel and select your area:
 USA
 EUROPE
 JAPAN
 AUSTRALIA
 CHINA
  */
  fmtx_init(fm_freq, USA); 
  Serial.print("Channel:");
  Serial.print(fm_freq, 1);
  Serial.println("MHz");
}

void loop(void)
{
  /** check for data setting new frequency.  Users could input data from Serial monitor. Data 
    must start with '&' and followed by 4 numbers, such as &8000. The first two is the integer part
    of new frequency (Unit: MHz), and the last one is the decimal part. And the channel must between 70MHz
    and 108Mhz. For example,  &756 is 75.6MHz, and &666 is out of range.
  */
   if(Serial.available()){
    switch(Serial.read()){
      case '&':
        u8 i,buf[4];
         float ch;
         i=0;
         delay(30);
         while(Serial.available()&&i<4){
           buf[i]=Serial.read();
           if (buf[i]<= '9' && buf[i]>= '0') { 
           i++;}
           else{
           i=0;
           break;
           }
         }
         if (i==4){
           ch = (buf[0]-'0')*100+(buf[1]-'0')*10+(buf[2]-'0')*1+0.1*(buf[3]-'0');
           if(ch>=70&&ch<=108){
             Serial.print("New Channel:");
             Serial.print(ch, 1);
             Serial.println("MHz");
             fmtx_set_freq(ch);
           }else{
             Serial.println("ERROR:Channel must be range from 70Mhz to 108Mhz.");
           }
         }else{
           Serial.println("ERROR:Input Format Error.");
         }
         
         while(Serial.available()){
           Serial.read();
         }
        break;
    }
  }
}