Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?
@Nabeshin

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

More than 1 year has passed since last update.

はじめに

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

IMG_1816.JPG

スペック

配線

  • ブレッドボードと基板のピッチが違うので、N/C以外のピンを延長して接続。

IMG_1818.JPG

ピン配置

  • 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 側に接続。

IMG_1819.jpg

  • アンプ/スピーカー
    • 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.

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

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

IMG_1817.JPG

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

感想

  • こんなに安くてちっちゃいモジュールだけど、ちゃんと電波拾えればノイズも無く良く聞こえる。
  • ちっちゃくパッケージ出来るので、緊急用のラジオとして使うと良さそう。
  • イケてるお菓子の箱か何かでパッケージングすれば楽しそう。
9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Nabeshin

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
9
Help us understand the problem. What is going on with this article?