فرستنده FM، من فکر می کنم هر سازنده الکترونیکی ممکن است آن را امتحان کند. در این پروژه یک فرستنده FM ساخته شده با برد مبتنی بر KT0803K و توسط برد معروف Arduino UNO کنترل می شود. صدای ما را از طریق مدولاسیون فرکانس بین 70 مگاهرتز تا 108 مگاهرتز منتقل می کند.
آی سی KT0803K
فرستنده دیجیتال استریو FM یکپارچه IC KT0803K از KTMicro با قابلیت تولید FM استاندارد 70 مگاهرتز تا 108 مگاهرتز با جریان کارکرد 17 میلی آمپر بسیار کم مصرف است. با استفاده از سیم های I2C (SDA، SCL) واحد میکرو کنترلر می تواند فرکانس کانال را تعیین کند و KT0803K را کنترل کند.
این آی سی حاوی ADC صوتی 20 بیتی تراشه برای تبدیل صدا به سمت چپ و راست به سیگنال دیجیتال است. هسته DSP روی تراشه به اندازه کافی برای کنترل سیگنال های صوتی دیجیتال کارامد است. خروجی مدولاتور FM توسط تقویت کننده قدرت RF تقویت می شود و از طریق پین خروجی RF به آنتن می آید. این آی سی در بسته 16 پین SOP عرضه می شود، ولتاژ کاری بین 1.6 ولت تا 3.6 ولت متغیر است و قابل برنامه ریزی برای انتقال FM می باشد.
ماژول فرستنده FM
ماژول فرستنده FM از elechouse، حاوی آی سی فرستنده استریو دیجیتال یکپارچه FM KT0803K است که وظیفه دارد FM را روی ورودی صوتی و این آی سی, مستقیماً توسط برد آردوینو (میکرو کنترلرها) از طریق رابط I2C کنترل کند.
جک ورودی استریو برای ورودی صدا از دستگاه خارجی داده شده است و همچنین این ماژول دارای میکروفون داخلی برای دریافت صدای ما است. سیگنال صوتی از میکروفون از طریق ترانزیستور npn 9013 تقویت شده و به آی سی tx اعمال می شود. 32.768 K Crystal ساعت را برای این ماژول فراهم می کند.
میکروکنترلرهای استاندارد I2C با دو سیم می توانند این ماژول FM را کنترل کنند و KT0803K نیازی به تنظیم خارجی ندارد.
اتصال فرستنده FM به آردوینو
همانطور که در نمودار اتصال نشان داده شده است، ماژول فرستنده FM را به برد آردوینو وصل کنید. در اینجا پین Vcc ماژول به پایه منبع تغذیه 3.3 ولت آردوینو وصل شده و Ground به GND برد آردوینو متصل می شود. پین های I2C SDA و SCL به A4 و A5 برد آردوینو uno متصل می شوند این دو پین I2C در برد uno هستند. این تغییر به انواع برد آردوینو و میکرو کنترلرها بستگی دارد، اگر از برد دیگری استفاده می شود، جزئیات پین را بررسی کنید.
شماتیک فرستنده FM آردوینو
اتصالات همانند شکل بالا انجام دهید. از هر سیمی می توانید به عنوان آنتن استفاده کنید.
کد آردوینو – فرستنده FM
/**
For this demo, input command format like &xxxx to set select band,
(eg:if you want to set FM 95.6MHz,then input &0956 and send).
Credits to: www.elechouse.com.
*/
#include <FMTX.h>
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;
}
}
}
این کد به فایل کتابخانه نیاز دارد، می توانید آن را از اینجا دریافت کنید.
توجه
در بیشتر کشورها، ساخت ایستگاه رادیویی شخصی که مساحت وسیعی را پوشش می دهد، غیرقانونی است. برخی از باندهای FM نیز نیاز به مجوز دارند. استفاده از باند FM رایگان را با توجه به کشور خود بررسی کنید و مطمئن شوید که روی همسایگان تأثیری نخواهد داشت.