RRD-102
FMラジオモジュール RDA5807Mです。2mmピッチなので、無理やり2.54mmピッチに変換して使っています。
Arduinoとの接続
RDA5807M | Arduino nano |
SDA | A4 |
SCL | A5 |
VCC | 3.3V |
GND | GND |
L-OUT、R-OUT、GNDは、スピーカーかイヤフォンに接続です。イヤフォンなら、そのまま音がでて確認できます。スピーカーの場合はアンプが必要かも。
ANTは、アンテナにつなぎます。
ライブラリ
An Arduino library to control FM radio chips like SI4703, SI4705, RDA5807M, TEA5767
https://github.com/mathertel/Radio
上記のライブラリーを使用します。ダウンロードして、展開したファイルを、ドキュメント\Arduino\librariesにコピーしてください。
サンプルスケッチ
https://github.com/mathertel/Radio/blob/master/examples/TestRDA5807M/TestRDA5807M.ino
サンプルほぼそのままで動作します。赤枠のところだけ修正してください。数字が、周波数です。9060 =>90.60Mhzです。この値を聞きたい放送の周波数にしてください。
#include <Arduino.h>
#include <Wire.h>
#include <radio.h>
#include <RDA5807M.h>
// ----- Fixed settings here. -----
#define FIX_BAND RADIO_BAND_FMWORLD
#define FIX_STATION 9060
#define FIX_VOLUME 4
RDA5807M radio;
/// Setup a FM only radio configuration
/// with some debugging on the Serial port
void setup() {
// open the Serial port
Serial.begin(57600);
Serial.println("Radio...");
delay(200);
// Initialize the Radio
radio.init();
// Enable information to the Serial port
radio.debugEnable();
// Set all radio setting to the fixed values.
radio.setBandFrequency(FIX_BAND, FIX_STATION);
radio.setVolume(FIX_VOLUME);
radio.setMono(false);
radio.setMute(false);
} // setup
/// show the current chip data every 3 seconds.
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);
} // loop
// End.
動作確認
音が出れば確認は簡単ですが、雑音のみで音が出ない場合は、シリアルモニターで確認してみてください。
・スケッチで設定した周波数になっている
・RSSIが1以上の数字
この状態だと、おそらくチップ自体は動作してると思います。
音が出ない原因は、電波状態が悪いとか、その周波数の放送がないとか、いろいろだと思います。
動作確認(動画)
4:00から実際のラジオ音声の確認をしています。なかなかラジオ音声がでなくて、はんだ付けやり直してみたり、Arduinon nano互換ボードを疑ったりしたけど、単に電波状態が悪かっただけのような。
コメントを残す