FMラジオモジュール RDA5807Mで自作ラジオ
はじめに
- Amazonで1個138円(5個で330円)のFMラジオモジュールなるものを発見。
- 例のごとく、10日ほどで商品が到着したけど、1cm四方のミニ基板でちっちぇ〜。
- とりあえずどんなもんか、試してみた。
スペック
-
FMラジオモジュール RDA5807M
- チップ名:RDA5807M
- 動作電圧:DC2.7-3.6V
- 変調モード:FM
- FMバンド周波数:76-108MHz
配線
- ブレッドボードと基板のピッチが違うので、N/C以外のピンを延長して接続。
- チップ名:RDA5807M
- 動作電圧:DC2.7-3.6V
- 変調モード:FM
- FMバンド周波数:76-108MHz
- ブレッドボードと基板のピッチが違うので、N/C以外のピンを延長して接続。
ピン配置
- RDA5807M のピン配置は左上を1番ピンとして(上の写真の向きと同じ)、こんな感じ。
No | Name | No | Name | |
---|---|---|---|---|
1 | SDA | 6 | アンテナ | |
2 | SCL | 7 | N/C | |
3 | N/C | 8 | スピーカ L OUT | |
4 | N/C | 9 | スピーカ R OUT | |
5 | VCC(3V) | 10 | GND |
アンテナ
- 6番ピン
- 30cm〜60cmの長めの導線を伸ばしておく。これで電波をキャッチできるかで音質が決まる。
Arduinoとの接続
RDA5807M | Arduino Nano互換機 |
---|---|
SDA | A4 |
SCL | A5 |
GND | GND |
VCC | 3V |
アンプとスピーカ
アンプを介してスピーカL, R 側に接続。
- アンプ/スピーカー
- RDA5807M自体はステレオ出力できるが、写真ではモノラルでお試し。
- Arduinoの8,9番ピンをアンプのR_IN, L_INにつなぐ。GNDもつなぐ。
- 出力側のVCC/GNDはArduinoの5V/GNDから取る。
- L_OUT+, L_OUT-をスピーカにつなぐ。
- 実験用に小型のアンプは1個持っとくと便利。
ライブラリのインストール
- Arduino IDE の「ライブラリマネージャ」で「rda5807」を検索。
- 「Radio by Matthias Hertel」をインストールする。
コード
#include <Arduino.h>
#include <Wire.h>
#include <radio.h>
#include <RDA5807M.h>
#define FIX_BAND RADIO_BAND_FMWORLD //RADIO_BAND_FM //Radio Band -FM
#define FIX_STATION 8000 //10050 //Station Tuned = 100.50 MHz.
#define FIX_VOLUME 5 //Audio Volume Level 5.
RDA5807M radio;
void setup() {
Serial.begin(9600);
Serial.println("FM Radio");
delay(200);
radio.init();
radio.debugEnable();
radio.setBandFrequency(FIX_BAND, FIX_STATION);
radio.setVolume(FIX_VOLUME);
radio.setMono(false);
radio.setMute(false);
}
void loop() {
char s[12];
radio.formatFrequency(s, sizeof(s));
Serial.print("Station:");
Serial.println(s);
Serial.print("Radio:");
radio.debugRadioInfo();
Serial.print("Audio:");
radio.debugAudioInfo();
delay(3000);
}
- 76MHzから108MHzまで対応させるためにFIX_BANDを修正
- RADIO_BAND_FMだと87MHz未満は87MHzにされてしまうのでRADIO_BAND_FMWORLDに修正。
#define FIX_BAND RADIO_BAND_FMWORLD //RADIO_BAND_FM //Radio Band -FM
- 日本のラジオ局の周波数(80.0MHz;東京FM)に修正。
#define FIX_STATION 8000 //10050 //Station Tuned = 100.50 MHz.
#include <Arduino.h>
#include <Wire.h>
#include <radio.h>
#include <RDA5807M.h>
#define FIX_BAND RADIO_BAND_FMWORLD //RADIO_BAND_FM //Radio Band -FM
#define FIX_STATION 8000 //10050 //Station Tuned = 100.50 MHz.
#define FIX_VOLUME 5 //Audio Volume Level 5.
RDA5807M radio;
void setup() {
Serial.begin(9600);
Serial.println("FM Radio");
delay(200);
radio.init();
radio.debugEnable();
radio.setBandFrequency(FIX_BAND, FIX_STATION);
radio.setVolume(FIX_VOLUME);
radio.setMono(false);
radio.setMute(false);
}
void loop() {
char s[12];
radio.formatFrequency(s, sizeof(s));
Serial.print("Station:");
Serial.println(s);
Serial.print("Radio:");
radio.debugRadioInfo();
Serial.print("Audio:");
radio.debugAudioInfo();
delay(3000);
}
- 76MHzから108MHzまで対応させるためにFIX_BANDを修正
- RADIO_BAND_FMだと87MHz未満は87MHzにされてしまうのでRADIO_BAND_FMWORLDに修正。
#define FIX_BAND RADIO_BAND_FMWORLD //RADIO_BAND_FM //Radio Band -FM
- 日本のラジオ局の周波数(80.0MHz;東京FM)に修正。
#define FIX_STATION 8000 //10050 //Station Tuned = 100.50 MHz.
で、プログラムを走らせると・・・・
おお、あっさり音が出ました!!
- この後やりたいこと(どれも簡単)
- チャンネルを変えるにはプログラムをいちいち焼き直す必要があるので、ボタンで切り替える。
- LCDにラジオ局名を表示する。
- ステレオ出力も。
感想
- こんなに安くてちっちゃいモジュールだけど、ちゃんと電波拾えればノイズも無く良く聞こえる。
- ちっちゃくパッケージ出来るので、緊急用のラジオとして使うと良さそう。
- イケてるお菓子の箱か何かでパッケージングすれば楽しそう。
Author And Source
この問題について(FMラジオモジュール RDA5807Mで自作ラジオ), 我々は、より多くの情報をここで見つけました https://qiita.com/Nabeshin/items/c8c826e8751e5405f8a4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .