1) 主题:红外遥控障碍检测装置(四级)
器件:Atmega328P主控板1块,红外接收套件1套,LED模块1个,超声波传感器1个,蜂鸣器模块1个,舵机1个。以上模块也可使用分立器件结合面包板搭建。
任务要求:红外遥控障碍检测装置有三种状态,分别为:关闭、近距检测和远距检测。装置处于近距检测状态时,当障碍物距离不大于5cm时,蜂鸣器发出警报声;装置处于远距检测状态,当障碍物距离不大于10cm时,蜂鸣器发出警报声;装置处于关闭状态时,对障碍物靠近不做反应。
通过控制舵机的舵盘转至不同角度用于指示不同的状态。具体要求如下:
(1)首次通电后,装置处于关闭状态,此时LED灯熄灭,蜂鸣器静音,舵机处于90度位置;
(2)点击红外遥控器的2键,装置进入近距检测状态,舵机处于135度位置,LED灯点亮,当障碍物距离不大于5cm时,蜂鸣器发声,LED灯闪烁,且蜂鸣器发声频率随着障碍物的靠近而增大,LED灯的闪烁频率随着障碍物的靠近而加快;
(3)点击红外遥控器的3键,装置进入远距检测状态,LED灯点亮,当障碍物距离不大于10cm时,蜂鸣器发声,LED灯闪烁,且蜂鸣器发声频率随着障碍物的靠近而增大,LED灯的闪烁频率随着障碍物的靠近而加快;(4)点击红外遥控器的1键,装置进入关闭状态,LED灯熄灭,蜂鸣器静音,舵机处于90度位置;
(5)控制程序采用Arduino C/C++代码编写,不得使用图形化软件编写;
(6)未作规定处可自行处理,无明显与事实违背即可。
说明:程序编写过程中不得打开其它示例程序,如发现,实操成绩按照0分处理。
请考生在考试结束前,按照如下要求提交相关文件。
(1)将程序放在一个文件夹中,压缩为1个“rar或zip”格式文件,并命名为:DJKS4_身份证号,大小5M以下;
(2)将程序文件通过“上传附件”按钮进行上传。
参考资料:
舵机类库及常用成员函数如下:
头文件:Servo.h
类库对象:Servo
成员函数:attach(Pin) //指定引脚的关联引脚
write(angle) //功能是让舵机转动到指定的角度
红外遥控示例:
#include <IRremote.h>
const int RECV_PIN =12;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value,HEX);
irrecv.resume();
}
delay(100);
}