Arduino 莫尔斯电码发报机 — 从零上手的 DIY 入门指南
元器件清单
| 元件 | 数量 | 备注 |
|---|---|---|
| Arduino UNO | 1 | 主控 |
| 12 mm 轻触按键 | 2 | 点/划 独立输入 |
| LED(任意色) | 1 | 视觉反馈 |
| 有源蜂鸣器 | 1 | 听觉反馈 |
| 电阻 330 Ω | 4 | LED/蜂鸣器/按键上拉 |
| 面包板 + 杜邦线 | 1 套 | 搭建电路 |
软件
- Arduino IDE
项目背景
莫尔斯电码以点(·)和划(—)组合表示字母数字,曾广泛用于电报通信。作者受谍战片启发,想用 Arduino 实现“用按键敲出密码、串口解码显示明文”的趣味装置。
电路连接
- D2 — 点按键一脚(另脚接 GND,内部上拉)
- D7 — 划按键一脚(另脚接 GND)
- D8 — LED 阳极(经 330 Ω)
- D12 — 蜂鸣器正极(经 330 Ω)
- 所有器件负极共地

固件逻辑
- 输入阶段:按下点/划键,LED+蜂鸣器同步发声,串口实时回显 `·` 或 `—`。
- 分隔符:串口发送 `1`(字母间隔 `@`) / `2`(词间隔 `#`) / `3`(结束翻译 `#`)。
- 解码阶段:收到结束符后,按查表法(A-Z 26 码)将莫尔斯串还原为英文文本,串口输出。
核心代码片段
String letters[26] = {
".-","-...","-.-.","-..",".","..-.","--.","....","..",
".---","-.-",".-..","--","-.","---",".--.","--.-",".-.",
"...","-","..-","...-",".--","-..-","-.--","--.."
};
// 解码函数
char convertIntoText(String code) {
for (int i=0;i<26;i++) if (code==letters[i]) return char(65+i);
return '?';
}
使用方法
- 上传代码,打开串口监视器(9600 波特率,换行模式)
- 按提示敲击点/划键,完成一个字母后发 `1`,换词发 `2`,结束发 `3`
- 屏幕输出解码文本,如 `HELLO WORLD`
扩展建议
- 增加 LCD 1602 直接显示明文,脱离电脑
- 接无线模块(LoRa/433 MHz)实现远程莫尔斯通讯
- 结合语音合成模块(DFPlayer)朗读解码结果
原理图

制造工艺
- Arduino Mega 按键 PWM 调光:三阶段渐变 LED 实战教程
- 仅用 Arduino 构建 DTMF 解码器 – 无需额外 IC
- 用 Arduino 制作超声波悬浮装置:分步指南
- 激光模块莫尔斯电码通信——双 Arduino 收发实验
- 智能物联网罐:ESP8266 + Arduino + 超声波传感器实时监测罐内物位
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 用 Arduino 测量地球质量:DIY 分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- Arduino 声纳实时测距与 Processing 可视化
- 智能停车计数系统:Arduino + Processing + PHP 实时车位追踪上云
- Python 3 控制 Arduino UNO - 串口通信点亮内置 LED 入门教程