实验arduino遥控电风扇红外线控制
数学与信息工程学院
综合性项目实验报告
课程 arduion设计与开发
项目名称遥控器遥控风扇
专业计算机科学与技术
班级级物计算机科学与技术
学生姓名学号
教师
年12月
一、实验目的
1.熟悉并掌握舵机、直流电机的功能与编程控制方法;
2.熟练掌握红外遥控器的控制原理与按键控制基本方法;
3.通过项目设计实验电路搭建与程序编写,熟练掌握ArduinoIDE编程基础,提高理论联系实际、编
程应用的实践能力。
二、实验条件
1硬件设计概述
2遥控电风扇硬件系统
硬件系统设计;电路原理(图);电路构成与功能
3主要器件(功能、参数)
⑴ArduinoUNO开发板
⑵红外遥控器
遥控器发射、接收原理;遥控器信息编码
⑶舵机原理
舵机原理;角度的控制
⑷直流电机
直流电机原理;速度控制
⑸直流电机驱动电路
ULN大电流驱动阵列(IC);驱动电路
三、实验任务
以ArduinoUNO通用开源软硬件台为基础,用红外遥控器、舵机、直流电机等设计一个原型电风扇。
红外遥控器电风扇,按键实现的基本功能:⑴电风扇的开、关;⑵弱、中、强风速档的选择;⑶风
速大小的连续调节;⑷风扇正传、反转的转向控制。
四、实验原理
五、实验内容
电路图:
原理图
代码:
#includeIRremote.h
intrecvPin=11;//红外接收器连接11号引脚
IRrecvmyIRrecv(recvPin);//实例化一个红外接收对象
decode_resultsresults;
#definedwqPinA0//电位器输入引脚
#definedjPin3//PWM输出引脚-控制电机转速
intsensorValue=0;
intdjSpeed=0;//直流电机转速0-void
voidsetup(){
myIRrecv.enableIRIn();
Serial.begin();
pinMode(3,OUTPUT);
digitalWrite(3,LOW);
}
voidloop(){
sensorValue=analogRead(dwqPin);//读电位器电压,量值0-
djSpeed=map(sensorValue,0,,0,);//sensorValue值转换为0-
Serial.print("sensorValue=:");
Serial.println(djSpeed);
if(myIRrecv.decode(results)){//检查是否收到编码信息
Serial.print("thekeycodeis:");
Serial.println(results.value,HEX);//串口输出16进制编码
myIRrecv.resume();//接收下一个编码
delay();
if(results.value){
if(results.value==0xFFA25D)//CH-键
{
delay();
results.value=0;
if(results.value==0xFFE21D)//CH+键
digitalWrite(3,HIGH);
if(results.value==0xFF30CF)//1键连续增速
for(inti=0;i;i++){
djSpeed=map(i,0,,0,);//sensorValue值转换为0-
digitalWrite(3,i);
if(results.value==0xFF18E7)//2键连续减速
for(inti=;i0;i--){
if(results.value==0xFF42BD)//7键
sensorValue=analogRead(dwqPin);
djSpeed=map(sensorValue,0,,0,);//sensorValue值
digitalWrite(3,djSpeed);
if(results.value==0xFF4AB5)//8键
djSpeed=map(sensorValue,0,,,);//sensorValue值
delay(0);
if(results.value==0xFF52AD)//9键
djSpeed=map(sensorValue,0,,,);//sensorValue值
}六、实验结果
1.实验现象:
.
自己看到现象的是什么就写哦!!!
教师评语:
转载请注明:http://www.abuoumao.com/hyfz/4539.html