AVRベースFMラジオキット [K-FM1602]

AVRベースFMラジオキット [K-FM1602]

販売価格: 2,550円~2,680円(税別)

(税込: 2,805円~2,948円)

オプションにより価格が変わる場合もあります。

在庫切れ
●概要

●仕様・機能

★本商品は組立キットで、半田付けが必要です★キャラクタ液晶1602を搭載したAVRマイコンATMEGA328P-PUマイコンボードキット、Arduino互換機として使用できます、FMラジオモジュールFM-TEA5767-MやオーデイオアンプTDA1308回路がも付いていますので、対応スケッチ(※1)を書き込めばFMラジオ機能をお楽しみいただけます、詳細マニュアルがついていないので基板シルクや部品配置図などの掲載情報だけで作成できる方にお勧め、動作電源:5V、電源供給:2通り、(1)マイクロUSBコネクタ、(2)2.54mmピッチ2Pピンヘッダ、スケッチ書き込みインターフェース:TR5GP(※2)、基板寸法:93.98x101.60x1.2mm、表記価格:1



<構成部品一覧>

・1/4W抵抗
(R1):1KΩ(x1)
(R9、R10):3.9KΩ(x2)
(R3、R4):4.7KΩ(x2)
(R2、R5、R6、R7、R8、R11、R12):10KΩ(x7)
(R13、R14):22KΩ(x2)
・可変抵抗
(3362P):10K(x1)
(R0921G-):50K(x1)
・セラミックコンデンサ
(C7、C9):(220)22pF(x2)
(C19、C20):(101)100pF(x2)
(C16、C17):103(x2)
(C3、C6、C8、C18、C21、C22):104(x6)
(C10、C12、C14、C15):(105)1uF(x4)
・電解コンデンサ
(C1、C2、C4): 16〜25V10uF(x3)
(C5、C11、C13): 16-25V100uF(x3)
・φ5mm LED(LED1):赤色(x1)
・マイクロインダクタ(AL0307):(3R3K)3.3uH(x3)
・クリスタル(HC49S):16.000MHz(x1)
・スライドスイッチ(SW1):SS-12D00-1P2T(x1)
・タクトスイッチ(12x12): 12x12((x5個)
・オーディオジャック(J1):PJ-307(x1)
・タクトスイッチ:THCP03(x1)
・ピンソケット(2.54mm/単列): 16P(x1)
・ピンヘッダ
(2.54mm/単列): 16P (x1)
(2.54mm/単列/L型): 5P (x1)
・マイクロUSBコネクタ(2P):MCUBF-2P(x1)
・ICソケット
(300MIL):8P (x1)
(300MIL):28P (x1)
・オーデイオアンプ(U2): TDA1308(x1)
・AVRマイコン (DIP-28):ATMEGA328P-PU(x1) ※バリエーション
・低消費電力LDO(Q1): ME6209-3.3V (x1)
・ラジオモジュール(U3): FM-TEA5767-M (x1)
・STNキャラクタ液晶(16x2) 1602A-V2(x1)
・基板(x1)
スイッチキャップと六角樹脂ナット(M3)は別売品になります。

<バリエーション:付属マイコンATMEGA328P-PU>

ブートローダ書き込みなし
ブートローダ書き込み済み



●注
(※1)公開したデモコードにはすべての機能が含まれているものではありません。機能の拡張や変更などは、ユーザ側で作成してください。
(※2)TR5GPとは、Tx、Rx、5V、GND、P-RESETの略称で、あちゃんでいいの [AKIT-ADINO]のような、DTRピンがついているUSB-TTLコンバータを使ってスケッチの書き込みが可能なインターフェースです。


●デモコード


#include
#include
unsigned char search_mode=0;
int b=0;
int c=0;
#define Button_next 6
#define Button_prev 7
unsigned char frequencyH=0;
unsigned char frequencyL=0;
unsigned int frequencyB;
double frequency=0;
double freq_available=0;
LiquidCrystal lcd(13, 12, 2, 3, 4, 5);
void setup() {
Wire.begin();
lcd.begin(16, 2);
/// buttons
pinMode(Button_next, INPUT);
digitalWrite(Button_next, HIGH); //pull up resistor
pinMode(Button_prev, INPUT);

digitalWrite(Button_prev, HIGH); //pull up resistor
frequency=82.5; //starting frequency
frequencyB=4*(frequency*1000000+225000)/32768; //calculating PLL word
frequencyH=frequencyB>>8;
frequencyL=frequencyB&0XFF;
delay(100);
Wire.beginTransmission(0x60); //writing TEA5767
Wire.write(frequencyH);
Wire.write(frequencyL);
Wire.write(0xB0);
Wire.write(0x10);
Wire.write(0x00);
Wire.endTransmission();
delay(100);
}
void loop()
{
unsigned char buffer[5];
lcd.setCursor(0, 0);
Wire.requestFrom(0x60,5); //reading TEA5767
if (Wire.available())
{
for (int i=0; i<5; i++) {
buffer[i]= Wire.read();
}
freq_available=(((buffer[0]&0x3F)<<8)+buffer[1])*32768/4-225000;
lcd.print("FM ");
lcd.print((freq_available/1000000));
frequencyH=((buffer[0]&0x3F));
frequencyL=buffer[1];
if (search_mode) {
if(buffer[0]&0x80) search_mode=0;
}
if (search_mode==1) lcd.print(" SCAN");
else {
lcd.print(" ");
}
lcd.setCursor(0, 1);
lcd.print("Level: ");
lcd.print((buffer[3]>>4));
lcd.print("/16 ");
if (buffer[2]&0x80) lcd.print("STEREO ");
else lcd.print("MONO ");
}

///// buttons read
//////////// button_next//////////
if (!digitalRead(Button_next)&&!b) {
frequency=(freq_available/1000000)+0.05;
frequencyB=4*(frequency*1000000+225000)/32768+1;
frequencyH=frequencyB>>8;
frequencyL=frequencyB&0XFF;
Wire.beginTransmission(0x60);
Wire.write(frequencyH);
Wire.write(frequencyL);
Wire.write(0xB0);
Wire.write(0x1F);
Wire.write(0x00);
Wire.endTransmission();
//////////////////////
b=100;
};
if (!digitalRead(Button_next)&&b==1) {
///scannnn UP
search_mode=1;
Wire.beginTransmission(0x60);
Wire.write(frequencyH+0x40);
Wire.write(frequencyL);
Wire.write(0xD0);
Wire.write(0x1F);
Wire.write(0x00);
Wire.endTransmission();
/////////////////
b=100;
};
if (!b==0) b--;
//////////// button_prev//////////

if (!digitalRead(Button_prev)&&!c) {
frequency=(freq_available/1000000)-0.05;
frequencyB=4*(frequency*1000000+225000)/32768+1;
frequencyH=frequencyB>>8;
frequencyL=frequencyB&0XFF;
Wire.beginTransmission(0x60);
Wire.write(frequencyH);
Wire.write(frequencyL);
Wire.write(0xB0);
Wire.write(0x1F);
Wire.write(0x00);
Wire.endTransmission();
c=100;
};
if (!digitalRead(Button_prev)&&c==1) {
///scannnn DOWN
search_mode=1;
Wire.beginTransmission(0x60);
Wire.write(frequencyH+0x40);
Wire.write(frequencyL);
Wire.write(0x50);
Wire.write(0x1F);
Wire.write(0x00);
Wire.endTransmission();
c=100;
};
if (!c==0) c--;
////////////////////
}