ArduinoとTEA5767で作る高性能FMラジオ受信機
必要な部品と材料
| 部品 | 詳細 | 数量 |
|---|---|---|
| Arduino Micro / Nano | 記事内ではNanoを使用 | 1 |
| TEA5767 FMラジオモジュール | 1 | |
| Nokia 5110 LCD (PCD8544) | 84×48ピクセル | 1 |
| ロータリーポテンショメータ 10kΩ | 周波数選択用 | 1 |
| LM386 オーディオアンプモジュール | 1 | |
| 3Wスピーカー | 1 | |
| ブレッドボード(大) | 1 | |
| オーディオケーブル | 3.5mmステレオミニプラグ | 1 |
| ジャンパーワイヤー | 多数 | |
| FMトランスミッター | テスト用 | 1 |
| モバイルバッテリー | 電源用 | 1 |
このプロジェクトについて
はじめに
ブレッドボード上でシンプルなFMラジオ受信機を作ります。Nokia 5110 LCDに周波数・信号強度・ステレオ受信アイコンを表示。Arduino Nanoが制御を担い、ポテンショメータで周波数選択、もう1つで音量調整します。総費用は約15ドル(約2,000円)程度。比較的簡単に作れる魅力的なプロジェクトです。
Step 1: パーツ調達
上記リストの通り。Nokia 5110は低消費電力(バックライトOFFで0.4mA、スリープ0.06mA)でシリアル接続8線のみと扱いやすく、約4ドルで入手可能です。
Step 2: Nokia 5110 LCD
携帯電話用として開発されたPCD8544コントローラ搭載のグラフィックLCD。詳細な接続・使用法は別途動画チュートリアルを参照してください。
Step 3: TEA5767 FMラジオモジュール
I2CインターフェースのTEA5767チップを搭載。オンボードにヘッドホンアンプがありますが出力が弱く、スピーカー直結は不可。外部アンプ(LM386等)とボリューム用ポテンショメータが必要です。モジュールにはアンテナ用とヘッドホン出力の2つのジャックがあり、小型アンナが付属します。
Step 4: 配線
回路図に従ってブレッドボード上に構築。主な接続:
- TEA5767: SCL→A5, SDA→A4 (Arduino Nano)
- 周波数用ポテンショメータ中点→A0
- 音量用ポテンショメータ: オーディオケーブルから信号線とGNDを取り出し、中点をLM386入力へ
- LM386: 電源・GND・スピーカー出力接続
- Nokia 5110: RST→D12, CE→D11, DC→D10, DIN→D9, CLK→D8, VCC→3.3V, LIGHT→GND, GND→GND
- ノイズ対策で330μFコンデンサを電源ラインに追加(任意)
Step 5: コード解説
使用ライブラリ:Nokia5110_Graph と TEA5767用ライブラリ。
起動時:ラジオ初期化→モノラル受信設定→ステレオノイズキャンセルON→スプラッシュスクリーン表示(3秒)。
void setup() {
radio.setMonoReception();
radio.setStereoNoiseCancellingOn();
initScreen();
showSplashScreen();
Serial.begin(9600);
}
メインループ:ポテンショメータ値を読み取り、87.0〜107.0MHzにマッピング。アナログ値の微小変動を吸収するため、0.1MHz以上変化したときのみ再チューニングし、画面更新を行います。
frequencyInt = map(val, 2, 1014, 8700, 10700);
float frequency = frequencyInt / 100.0f;
if (abs(frequency - previousFrequency) >= 0.1f) {
lcd.clrScr();
radio.selectFrequency(frequency);
printSignalStrength();
printStereo();
printFrequency(frequency);
previousFrequency = frequency;
}
完全なコードは プロジェクトページ で最新版を入手できます。
Step 6: 今後の展望
約30分で動作するFMラジオが完成。音質改善のため、より良いアンプ・スピーカーの検討、ユニバーサル基板への移行、レトロ風3Dプリント筐体化、ファインチューン機能追加、省電力化(バックライトOFFで約50mA)などを予定。完成版をデスクに置くのが楽しみです。ご意見・改善案はコメントでどうぞ!
回路図
全結線をまとめた回路図を参照してください。
製造プロセス
- Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
- Raspberry PiとArduinoで作るWi-Fiインターネットラジオ:世界中の局をストリーミング
- Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduino駆動3Dプリントロボットアームの製作:ステップバイステップガイド
- DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
- Arduino NanoとRDA5807Mで作るコンパクトFMラジオ
- Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- Arduino 101で作る万歩計:DHT11温湿度センサー&LCD表示付き
- Arduino RGBカラーミキサーの製作 - ステップバイステップチュートリアル