可见光通信 (Li-Fi) 实验:Arduino 实现 LED 无线数据传输
组件与材料
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino UNO | 2 | 一台发射端,一台接收端 |
| LDR 光敏电阻 (5MΩ) | 1 | 接收端光信号检测 |
| LED (通用) | 2 | 发射端各 1,建议高亮白光/蓝光 |
| 轻触开关 | 1 | 可选,触发发送 |
| 旋钮电位器 (通用) | 1 | 可选,调节发射强度/阈值 |
| 220Ω 电阻 | 2 | LED 限流 |
项目简介
本项目演示利用可见光进行无线数据传输 (Li-Fi) 的最小系统:发射端 Arduino 驱动 LED 闪烁编码数据,接收端 Arduino 通过 LDR 采集光强变化并解码还原。作者设计了简易协议保证可靠传输,代码开源且易于修改为光纤通信。整套系统 30 分钟即可搭建完成。
工作原理
- 发射端:将字节拆分为位流,通过 LED 开关键控 (OOK) 发送,起始位/停止位同步。
- 接收端:LDR + 上拉电阻构成分压电路,Arduino ADC 采样判断高低电平,按波特率定时采样重组字节。
- 协议:异步串口类似帧格式 (1 起始位 + 8 数据位 + 1 停止位),波特率可调 (默认 1200~2400 bps 受限于 LDR 响应速度)。
接线图

发射端:D2 → 220Ω → LED+,LED- → GND
接收端:LDR 一端接 5V,另一端接 A0 并并联 10kΩ 下拉至 GND
代码仓库
完整收发代码已开源:GitHub - DIY_Li-Fi
性能与改进方向
| 指标 | 当前表现 | 优化建议 |
|---|---|---|
| 波特率 | ~1200 bps | 替换 LDR 为光敏三极管/APD,可达 100 kbps+ |
| 传输距离 | 10~20 cm (室内环境光干扰) | 加装透镜聚光、调制载波频率 (如 38kHz) 抗干扰 |
| 误码率 | < 1% (近距离) | 增加校验位 (CRC8) 与重传机制 |
未来规划
- 用光敏三极管替代 LDR,大幅提升速度
- 尝试传输数字音频 (PCM/PDM)
- 改用激光二极管 + 光纤,实现长距离高速 Li-Fi 链路
- 设计 PCB 扩展板,集成发射/接收/电源管理
制造工艺
- 产品设计回归天然材料:美学、可持续与制造挑战的深度对话
- 发光二极管:从诞生到百年寿命
- 树莓派 ppDAQC 扩展板实时采集温度数据并上传至 InitialState
- 树莓派手势控制机器人:告别按键,挥手即达
- 基于 Infineon 3D 磁传感器的 Arduino 无线磁通讯实验
- 单 LED 光绘:自制电动双轴系统绘制动态图像
- Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
- 光数据通信:利用光实现高带宽、无干扰传输
- LED灯带配件大全:连接、控制与定制化布线
- 现代企业云存储十大核心价值:从灾备到协作的全维度赋能
- WebSocket赋能IIoT边缘开发:安全实时连接的实战指南
- Modbus协议在IIoT边缘开发中的实战:树莓派构建安全传感器数据流