🔴 SOS信号发射装置 · 虚拟仿真实验系统

对应教材第12章。无需实物器材,按"预习 → 连线 → 编程 → 调试 → 排查 → 拓展"六个环节完成完整实验闭环。
① 实验预习
② 硬件连线
③ 代码编辑
④ 代码调试
⑤ 故障排查
⑥ 拓展练习

学习目标

  • 理解密电码(摩尔斯码)点、划及间隔的时间规则
  • 掌握 LED、无源蜂鸣器、共阴极数码管的驱动原理
  • 能读懂并修改 setup()/loop()/sos()/SHOW_SOS() 的协同逻辑
  • 能定位并修复LED不闪、数码管不显示、时序不同步等典型故障

密电码规则

规则时间长度
一点(基本单位)1 个单位
一划3 个单位(=3点)
同一字母内点划间隔2 个单位
字母与字母之间间隔7 个单位

本实验用到的元件

  • Arduino UNO 控制板
  • LED 指示灯 1 个
  • 无源蜂鸣器 1 个(需方波驱动)
  • 共阴极七段数码管 1 个(a~g、dp 共8段)

预习观摩:完整SOS发射流程

预习自测

电路原理示意

Arduino UNO LED 蜂鸣器 数码管

练习分三组,分别对应本章例12.2(LED电路)、例12.5(蜂鸣器电路)、例12.6(数码管电路)中给出的引脚定义,请为每个元件选择正确的数字引脚。

连线匹配练习

填空式代码编辑(可运行)


        

仿真效果

提示:若空①②填反、空③④值不对,或空⑤过短/过长,运行时都会出现与预期不符的闪烁节奏或停顿——这正是代码编辑练习要验证的内容。

单步调试:void sos(int a)


        

运行状态

变量 i-
参数 a-
耗时(ms)-

点击"开始调试",逐步观察 for 循环如何驱动LED与蜂鸣器同步动作。

故障现象演示

选择一个故障场景并运行

诊断练习

习题拓展(对应教材"习题12")

12.1 用蜂鸣器演奏简单曲调

用 tone(pin, frequency) 依次输出不同频率并用 delay 控制音符时长,可组合出你喜欢的旋律。下方为音阶原理演示(do-re-mi-fa-sol):

12.2 用7个按键演奏音乐

提示:为每个按键分配一个音符频率,在 loop() 中用 digitalRead() 检测按键状态,按下即调用对应 tone()。

12.3 四位数码管分秒倒计时

提示:用软件延时(delay或millis())每秒更新一次计数变量,再分别对个位、十位数码管调用类似 SHOW_SOS() 的显示函数。

12.4 电位计控制直流电机转速

提示:用 analogRead() 读取电位计电压,映射到 analogWrite() 的PWM占空比,即可连续调节电机转速。

12.5 四人抢答器

提示:为4个按键各设一个"是否已抢答"标志位,第一个按下的按键点亮对应LED并锁定其余按键,直到主持人复位。

自我检查清单