RDA5807M 迷你立体声 FM 收音机:Arduino Nano + Nokia 5110 + PAM8403 功放
项目简介
基于 RDA5807M 单芯片 FM 立体声接收芯片(支持 RDS/RBDS、I²C 控制),配合 Arduino Nano、Nokia 5110 LCD(84×48)、三按键编码器(电阻分压识别)、PAM8403 D 类功放驱动双 8Ω/0.25W 扬声器,全部塞入 PVC 盒内,打造一款掌上迷你收音机。参考 俄文教程 移植并汉化菜单。
硬件清单
| 组件 | 数量 | 关键参数 |
|---|---|---|
| Arduino Nano R3 | 1 | 主控 |
| RDA5807M 模块 | 1 | I²C、RDS、立体声输出 |
| Nokia 5110 LCD | 1 | 84×48, PCD8544, 3.3V 供电 |
| 轻触开关 | 3 | 通过分压电阻接 A0 单 ADC 识别 |
| 分压电阻 | 120k/33k/68k | 产生三档电压区分三键 |
| PAM8403 功放板 | 1 | 立体声 3W×2, 5V 供电 |
| 8Ω 0.25W 扬声器 | 2 | 左右声道 |
| 锂电池 3.7V + 充电模块 | 1 | 便携供电 |
关键电路设计
- 按键编码:三键一端接地,另端经不同电阻(120k/33k/68k)汇聚接 A0,另端接 5V。按下时形成不同分压电压,
analogRead()区分三键,节省 IO。 - 音频链路:RDA5807 LOUT/ROUT → 1μF 解耦电容 → PAM8403 L/R IN → 喇叭。
- LCD 供电:必须接 3.3V,背光接 GND 常亮或接 PWM 引脚调光。
- I²C 上拉:模块通常板载 4.7k 上拉,若通信不稳定外接。
软件功能菜单
LCD 显示:频率 (MHz)、信号强度条、立体声图标、RDS 台名/节目类型、音量条、电池电量。按键操作:
- 短按 KEY1:频率 +0.1 MHz / 菜单上
- 短按 KEY2:频率 -0.1 MHz / 菜单下
- 长按 KEY1:自动搜台存储
- 长按 KEY2:音量 +/- 切换模式
- KEY3:静音/菜单确认/返回
代码要点(核心片段)
#include <Wire.h>
#include <PCD8544.h>
#include <RDA5807M.h>
RDA5807M radio;
PCD8544 lcd;
void setup() {
Wire.begin();
radio.init();
radio.setBand(FM_BAND); // 87.5-108 MHz
radio.setMono(false); // 立体声
radio.setVolume(12); // 0-15
lcd.begin(84,48); lcd.setContrast(50);
showSplash();
}
void loop() {
readKeys(); // ADC 识别按键
updateMenu(); // 状态机处理菜单
if (freqChanged) {
radio.setFrequency(freq);
readRDS(); // 解析 RDS Group 0A/2A 台名
}
drawUI(); // 刷屏:频率、信号条、立体声、RDS、音量
checkBattery(); // 分压读电池电压
}
调试心得
- 按键阈值:上电后先跑一次 ADC 校准,串口打印三键电压,写入代码常量。
- RDS 解码:需连续轮询
radio.getRDS(),解析 PI 码、PS 台名(8 字符滚动)、PTY 节目类型。 - 天线:耳机线即天线,插上耳机或接 75cm 导线效果最好。
- 电源纹波:PAM8403 对电源噪声敏感,电池直供最净,若用 Boost 模块需加 LC 滤波。
外壳与成品
PVC 盒开孔安装 LCD、按键、音量电位器(复用板载电位器或外接)、电源开关、Micro USB 充电口。内部热熔胶固定模块,天线引出。成品尺寸约 70×45×20 mm,单手掌握。
资源链接
- 原版固件与原理图:habr.com 俄文教程
- 汉化版代码、STL 外壳文件:项目 GitHub(文中提供下载链接)。
制造工艺
- 完美尺寸微型挖掘机助力生产力最大化
- 无线电技术演进与工程:从马可尼到数字广播
- 经典View-Master立体观察器:历史与生产全解析
- 柔软纸巾:乳液如何提升舒适度与性能
- Arduino 迷你 Boss 战游戏:复古风格项目
- 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
- 3D 打造紧凑型 MIDI 架子鼓套件
- Icom 对讲机外置 S 表:基于 CI-V 协议与 Arduino 实现
- RDA5807M 迷你立体声 FM 收音机:Arduino Nano + Nokia 5110 + PAM8403 功放
- 紧凑型Arduino雷达系统:HC-SR04超声波传感器配1.8英寸显示屏
- emtrion 推出紧凑型 emCON-MX8M Mini 模块:基于 NXP i.MX 8M Mini
- congatec 推出基于 NXP i.MX 8M Mini 处理器的 SMARC 2.0 模块