蓝牙控制 8×8 LED 点阵滚动显示:Arduino Nano + MAX7219
项目概述
基于 Arduino Nano、HC-05 蓝牙模块与 7 块 MAX7219 级联 8×8 LED 矩阵模块,打造手机无线控制的滚动字幕屏。Android 端使用 “Bluetooth SPP Pro” APP 发送文本、调节亮度/速度、暂停/清屏,支持预设快捷短语。外壳采用 PVC 板贴黑色壁纸制成,成品美观实用。
核心组件与物料清单
- Arduino Nano R3 ×1
- HC-05 蓝牙模块 ×1
- 8×8 LED 矩阵模块(MAX7219 驱动) ×7
- 6.8 kΩ 电阻 ×1、2.2 kΩ 电阻 ×2(蓝牙模块电平转换分压)
工具: 电烙铁
软件/APP: Arduino IDE、Bluetooth SPP Pro(Android,下载链接)
依赖库: Max72xxPanel、Adafruit GFX
硬件接线
- 矩阵级联:DIN → MOSI (D11),CS → D10,CLK → SCK (D13),VCC/GND 并联
- HC-05:TX → RX (D0),RX ← TX (D1) 经分压电阻(6.8k/2.2k)降压至 3.3V,VCC/GND 共地
- 原理图见项目附件(Schematics 部分)
通信协议与指令集
波特率 9600,所有指令以特定字符开头:
| 指令 | 功能 | 示例 |
|---|---|---|
( ... ) | 显示括号内文本,右向左滚动 | (Hello World!) |
/+ / /- | 亮度 +1 / -1(共 16 级) | |
/< / /> | 滚动加速 / 减速 | |
/p | 暂停/恢复滚动 | |
/e | 清屏并清空缓冲区 |
核心代码逻辑
setup():初始化 SPI、Max72xxPanel(7×1 布局)、串口、外部中断(INT0/D2)监听蓝牙数据loop():标志位dataAvailable置位时调用display_data()滚动绘制serialInterrupt():中断服务程序解析指令流,填充inputString缓冲区,处理亮度/速度/暂停/清屏即时指令- 滚动算法:双重循环逐列移动字符位图,
drawChar()绘制 5×7 字体,matrix.write()刷屏
代码完整版
完整代码见项目附件(Code 部分),含详细注释与中断处理细节。
制作提示
- 矩阵模块顺序需与
setPosition()设定一致,否则字符断裂/镜像 - 蓝牙模块供电稳定性关键,建议独立供电或加大容电容
- 外壳预留散热孔,避免长时间高亮度过热
制造工艺
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- 用 Arduino Nano 与 MAX7219 制作 24×16 LED Pong 游戏机
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- 蓝牙文本传送器:Arduino + Android 跨设备粘贴神器
- 语音控制家电:Google Assistant + 蓝牙 + Arduino UNO
- Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
- Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
- 使用 Arduino Uno 和蓝牙实现遥控小车:分步指南
- Arduino Mega + GSM SIM900 盾板实现短信收发
- Arduino Pro Micro 实现 HID UPS:将"哑"电源升级为 USB 智能后备电源
- 智能手机蓝牙鼠标:自制虚拟摇杆控制电脑光标
- 使用 Arduino 制作便携式 RFID 门锁——分步指南