【Arduino】FMラジオモジュール RDA5807Mを使ってみる【RRD-102】

  • 投稿 : 2020-02-13

RRD-102

FMラジオモジュール RDA5807Mです。2mmピッチなので、無理やり2.54mmピッチに変換して使っています。

Arduinoとの接続

RDA5807MArduino nano
SDAA4
SCLA5
VCC3.3V
GNDGND

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互換ボードを疑ったりしたけど、単に電波状態が悪かっただけのような。

スポンサーリンク