Arduino + TEA5767 打造 FM 收音机:Nokia 5110 显频谱/信号强度/立体声
项目简介
基于 Arduino Nano、TEA5767 FM 接收模块、Nokia 5110 LCD(PCD8544)、LM386 音频放大器与 3W 喇叭,在面包板上 30 分钟搭建一台功能完整的 FM 收音机。支持 87~108 MHz 全频段搜台、电位器调频/调音量、信号强度条、立体声指示、开机动画,总成本约 $15。
硬件清单
- Arduino Nano ×1
- TEA5767 FM 模块(含耳机插座、天线)×1
- Nokia 5110 LCD(84×48,绿背光)×1
- LM386 音频放大器模块 ×1
- 3W 4Ω 喇叭 ×1
- 10kΩ 电位器 ×2(调频、调音量)
- 面包板、跳线、音频线、330μF 电解电容(可选滤波)
- FM 发射机(调试用,可用手机 FM 发射 App 替代)
接线要点
| 模块 | 关键引脚连接 |
|---|---|
| TEA5767 | SDA→A4, SCL→A5, VCC→3.3V, GND→GND, 音频输出→音频线→音量电位器输入 |
| Nokia 5110 | RST→D12, CE→D11, DC→D10, DIN→D9, CLK→D8, VCC→3.3V, LIGHT→GND(常亮), GND→GND |
| LM386 | IN→音量电位器中间脚, GND→GND, VCC→5V, OUT→喇叭 |
| 调频电位器 | 中间脚→A0, 两端→5V/GND |
TEA5767 模块自带耳机放大器,输出信号微弱且无软件音量控制,必须外接音量电位器 + LM386 后级推喇叭。
软件架构
使用两个库:Adafruit_PCD8544(或 U8g2)驱动屏幕,TEA5767 库控制射频芯片。核心流程:
void setup() {
radio.setMonoReception(); // 强制单声道(可选)
radio.setStereoNoiseCancellingOn(); // 立体声降噪
initScreen(); showSplashScreen(); // 开机画面 3 秒
Serial.begin(9600);
}
void loop() {
int val = analogRead(A0); // 读调频电位器
int freqInt = map(val, 2, 1014, 8700, 10700); // 映射 87.00~107.00 MHz
float freq = freqInt / 100.0;
// 防抖:频率变化 >0.1 MHz 才重新选台
if (abs(freq - prevFreq) >= 0.1) {
lcd.clrScr();
radio.selectFrequency(freq);
printSignalStrength(); // 读取 RSSI 画信号条
printStereo(); // 判断立体声图标
printFrequency(freq); // 显示频率 xx.xx MHz
prevFreq = freq;
}
sevseg.refreshDisplay(); // 若用数码管显示频率
}
关键调试技巧
- 天线:模块自带短天线收台有限,可接 75cm 导线作鞭状天线,或接耳机线充当天线。
- 音质优化:LM386 增益默认 20,可在 1/8 引脚接 10μF 电容提升至 200;加 330μF 电解电容跨接电源轨滤波;改用带独立功放的有源音箱音质最佳。
- 立体声判断:TEA5767 寄存器 bit 7 为立体声标志,信号弱时自动切单声道。
- 微调功能:后续可加“微调”按钮,步进 50 kHz 微调频率,改善临边台干扰。
外壳与进阶规划
- 设计复古风 3D 打印外壳,嵌入面包板改万用板固定版。
- 加入 RDS 解码(TEA5767 支持),显示台名、节目类型。
- 低功耗优化:关闭 LCD 背光、睡眠模式下仅保持 RTC 与射频待机,配合锂电池做便携收音机。
- 代码托管:项目主页 持续更新最新固件。
总结
这是一个极具成就感的入门级射频项目,涵盖 I2C 通信、图形 LCD 驱动、模拟音频链路、人机交互等核心技能。从面包板验证到成品外壳,每一步都可按需深入。拿起烙铁,听听空中飘来的音乐吧!
制造工艺
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- 树莓派 + Arduino 联手打造 Wi-Fi 网络收音机,畅听全球电台
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- 使用 Arduino Nano 和 RDA8057M 制作紧凑型 FM 收音机
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里
- Arduino RGB 颜色混合器 – 分步制作教程
- DIY全波段Arduino收音机:Si4730模块实现LW/MW/SW/FM接收