1) 主题:红外遥控小风扇 
 器件: 
 红外遥器和红外接收模块各1个、舵机1个、小马达1个、主控板、马达驱动模块及相关器件(也可使用分立电子元器件结合面包板搭建)。 
 要求: 
 (1)通过红外遥控,控制小风扇的启停及其摇摆。 
 (2)红外遥控器数字2键,控制小风扇启停,当第1次按下数字2键时,小风扇启动,再次按下时,小风扇停止,依次反复。当小风扇启动时,小风扇以中等转速旋转。 
 (3)将控制小风扇旋转对应的PWM值,发送到串口监视器。 
 (4)当小风扇启动时,每按下红外遥控器数字1键,小风扇速度对应的PWM值减5,直至停止。 
 (5)当小风扇启动时,每按下红外遥控器数字3键,小风扇速度对应的PWM值加5,直至最大转速。 
 (6)红外遥控器数字5键,控制小风扇摇摆,当第1次按下数字5键时,小风扇左右连续摆动,再次按下时,小风扇处于中间90度位置,依次反复。 
 (7)当小风扇处于停止状态时,点击红外遥控器数字5键,小风扇不会左右摇摆。 
 (8)控制程序采用C/C++代码编写,不得使用图形化软件编写。 
 (9)未作规定处可自行处理,无明显与事实违背即可。 
 (10)程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。 
 说明: 
 请考生在实操考试结束前,按如下要求提交程序文件。 
  (1) 将所有程序文件放在一个文件夹,并将文件夹命名为:DJKS4_身份证号; 
  (2) 将程序文件压缩为"rar或zip"格式,大小5M以下,1个文件; 
  (3) 将程序文件通过“上传附件”按钮进行上传。  
 参考程序:  
 舵机类库及常用成员函数如下,供参考。红外遥控提供示例供参考。 
 舵机类库: 
 头文件:Servo.h 
 类库对象:Servo 
 成员函数: attach(Pin)     //指定引脚的关联引脚 
 write(angel)    //功能是让舵机转动到指定的角度。 
 红外遥控例程: 
#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);
}