主题:自动SOS警示灯 器件:Atmega328P主控板1块,LED模块1个,超声波传感器1个,电位器模块1个,蜂鸣器模块1个及相应辅件。以上模块也可使用分立器件结合面包板搭建。 任务要求: 摩尔斯电码是一种早期的数字化通信形式,它依靠一系列的点和划来传递编码信息。它的代码包含5种,分别为:点( · )、划(-)、每个字符内部短的停顿(在点和划之间的停顿)、每个字符之间中等的停顿以及单词之间长的停顿所组成。 摩尔斯电码代码时间是以点为基准,具体规则如下: 点( · ):一个时间长度单位 划( - ):三个点的长度; 每个字符内部短停顿(在点和划之间的停顿):一个点的长度; 每个字符之间中等停顿:三个点的长度; 每个单词之间长停顿:七个点的长度。 求救信号SOS对应的摩尔斯电码为:···---···。其中S的摩尔斯电码为···,O的摩尔斯电码为:---。 本主题通过控制LED灯的亮灭时长来模拟发送SOS求救信号。 具体要求如下: 1、当超声波检测的距离大于10厘米时,LED灯处于呼吸灯的状态(逐渐变亮,逐渐熄灭,依次反复),蜂鸣器静音。 2、当超声波检测的距离不大于10厘米时,LED灯发出SOS信号,同时蜂鸣器发出声音; 3、摩尔斯电码中点( · )的时间长度(即基准时长)由电位器控制,在200~500毫秒之间可调。 4、将超声波传感器检测的距离以及当前的基准时长发送到串口监视器。 5、呼吸灯的呼吸频率自行确定,需要能呈现出呼吸灯效果。 6、控制程序采用C/C++代码编写,不得使用图形化软件编写。 7、未作规定处可自行处理,无明显与事实违背即可。 8、考试结束,考生将代码压缩上传,程序文件命名规则为:DJKS4_身份证号。 9、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
【喵呜刷题小喵解析】这个答案是用C++编写的,基于Arduino平台。代码主要实现以下功能:1. **硬件接口设置**:定义了一些引脚,如LED灯(LED_PIN)、蜂鸣器(BEEPER_PIN)和超声波传感器(ULTRASOUND_PIN)的引脚。2. **距离检测**:通过`getDistance()`函数获取超声波传感器检测的距离。3. **呼吸灯效果**:当距离大于10厘米时,通过`呼吸灯()`函数实现LED灯的呼吸灯效果。4. **SOS信号发送**:当距离小于等于10厘米时,通过`SOS()`函数实现LED灯发送SOS信号,同时蜂鸣器发出声音。SOS信号的点(·)的时间长度由电位器控制。注意:这个答案假设了电位器连接在A0引脚上,并且使用了`map()`函数将电位器的模拟值映射到200~500毫秒的时间长度。另外,代码中的`呼吸灯`和`SOS`函数名使用了中文,这在实际编程中可能不是最佳实践,因为不是所有的编程环境都支持中文变量名或函数名。在实际使用时,可能需要将这些名称更改为英文。此外,代码中的蜂鸣器频率和音调是硬编码的(1000Hz),这可能不是理想的频率,具体取决于蜂鸣器的实际规格。最后,答案中的代码没有包括串口通信部分,用于发送超声波传感器检测的距离和当前的基准时长到串口监视器。如果需要实现这一功能,需要在代码中加入串口通信相关的部分。