FMラジオモジュール RDA5807Mで自作ラジオ


はじめに

  • Amazonで1個138円(5個で330円)のFMラジオモジュールなるものを発見。
  • 例のごとく、10日ほどで商品が到着したけど、1cm四方のミニ基板でちっちぇ〜。
  • とりあえずどんなもんか、試してみた。

スペック

配線

  • ブレッドボードと基板のピッチが違うので、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.

で、プログラムを走らせると・・・・

おお、あっさり音が出ました!!

  • この後やりたいこと(どれも簡単)
    • チャンネルを変えるにはプログラムをいちいち焼き直す必要があるので、ボタンで切り替える。
    • LCDにラジオ局名を表示する。
    • ステレオ出力も。

感想

  • こんなに安くてちっちゃいモジュールだけど、ちゃんと電波拾えればノイズも無く良く聞こえる。
  • ちっちゃくパッケージ出来るので、緊急用のラジオとして使うと良さそう。
  • イケてるお菓子の箱か何かでパッケージングすれば楽しそう。