arduino创新训练实验报告.docx
《arduino创新训练实验报告.docx》由会员分享,可在线阅读,更多相关《arduino创新训练实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
arduino创新训练实验报告
arduino-创新训练-实验报告
D
射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s,即:
,作用为测距。
贵州大学大数据与信息工程学院实习报告第2页
将超声波模块的Echo引脚设置为输入模式,Trig引脚设置为IO脚模式,通过Trig引脚发送脉冲触发HC-SR04测距,并输出测得的距离值。
设置不同的距离值范围,使之输出不同的函数,不同的函数将会输出不同的电平输入至LED(如图二)和蜂鸣器(如图三),然后使LED与蜂鸣器输出不同的结果,即不同颜色的灯光和不同频率的蜂鸣声。
一、设计内容
本次实验使用的Arduino主板的型号为UNO(如图四),编程程序为ArduinoIDE(如图五)。
贵贵州大学大数据与信息工程学院实习报告第3页
代码如下(附带注释):
constintTrigPin=3;
constintEchoPin=4;//定义变色灯LED的三个输出接口
intledpin1=5;//R引脚
intledpin2=6;//G引脚
intledpin3=7;//B引脚
intbeeppin=8;//蜂鸣器的pin
inti=0;
voidsetup()
{
Serial.begin(9600);//测量结果将通过此串口输出至PC上的串口监视器
pinMode(EchoPin,INPUT);//设置EchoPin为输入模式
pinMode(TrigPin,OUTPUT);//设置超声波数字IO脚模式,OUTPUT为输出
pinMode(ledpin1,OUTPUT);
pinMode(ledpin2,OUTPUT);
pinMode(ledpin3,OUTPUT);
pinMode(beeppin,OUTPUT);//设置蜂鸣器引脚输出模式
}
voidloop()
{
digitalWrite(TrigPin,LOW);//通过TrigPin发送脉冲,触发HC-SR04测距,使发出发出超声波信号接口低电平2μs
delayMicroseconds
(2);
digitalWrite(TrigPin,HIGH);//使发出发出超声波信号接口高电平10μs,这里是至少10μs
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);//保持发出超声波信号接口低电平
intdistance=pulseIn(EchoPin,HIGH);//读出脉冲时间
distance=distance/58;//将脉冲时间转化为距离(单位:
厘米)
Serial.println(distance);//输出距离值
if(distance<20)//当距离<20cm
{
setColor(255,0,0);//三色LED的设置颜色
buzzer1();
}
elseif(distance<=120)//当距离<120cm
{
setColor(0,0,255);
buzzer2();
}
else
贵贵州大学大数据与信息工程学院实习报告第4页
{
setColor(0,255,0);
buzzer3();
}
}
//*****************************************************************
voidbuzzer1()
{
tone(beeppin,900);
delay(300);//响声间隔300ms听上去更急促
noTone(beeppin);
}
voidbuzzer2()
{
tone(beeppin,600);
delay(500);//响声间隔500ms听上去普通
noTone(beeppin);
}
voidbuzzer3()//这里我用了除余的方法,目的是如果处在安全距离,在不用delay的情况下蜂鸣器响声不要那么频繁
{
if(i%100==1){
tone(beeppin,500);
}
else{
noTone(beeppin);
}
i++;
}
voidsetColor(intred,intgreen,intblue)//三色LED的设置颜色函数
{
analogWrite(ledpin3,red);
analogWrite(ledpin2,green);
analogWrite(ledpin1,blue);
}
贵贵州大学大数据与信息工程学院实习报告第5页
二、设计结果
将超声波模块,LED模块和蜂鸣器模块连接至ArduinoUNO上(如图六)。
将代码上传至Arduino电路板中,即可通过遮挡超声波发射器来模拟倒车的情景来测试作品的雷达功能,下面将会用一系列图片来展示测试结果。
贵贵州大学大数据与信息工程学院实习报告第6页
贵贵州大学大数据与信息工程学院实习报告第7页
贵贵州大学大数据与信息工程学院实习报告第8页