实验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

网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

当前时间: 冀ICP备19029570号-7