重工电子论坛
标题:
【实验室培训_201810期】+刘智中+第五周任务(软件)
[打印本页]
作者:
刘智中
时间:
2018-12-15 18:54
标题:
【实验室培训_201810期】+刘智中+第五周任务(软件)
一、任务要求:了解并掌握运用ardunio单片机控制SR04超声波实现对距离数据的采集,并且根据输出的距离数据来改变跑马灯的样式,并根据不同按键的输入状态输出不距离数据类型(厘米,米,英尺,英寸)。
二、工作环境:通过ardunio软件编程对SR04超声波实现对距离数据的采集。
三、实现步骤:对原有的程序进行改写,运用两个按键实现通过串口监视器输出四种种不同的距离信息;再通过距离数据对LED灯进行控制。 实际操作线路连接:
超声波测距.PNG
(919.03 KB, 下载次数: 1116)
下载附件
2018-12-15 18:49 上传
串口数据:
距离数据.PNG
(11.44 KB, 下载次数: 899)
下载附件
2018-12-15 18:49 上传
源程序如下:
void loop()
{
D=0;i=0;
float distance;
y=digitalRead(12);
z=digitalRead(13);
distance = sr04_read();
delay(500);
if(y==LOW)
{
if(distance<=100)
{
Serial.print("distance is:");
Serial.print(distance);
Serial.print("cm");//厘米输出数据
D=distance/10;
}
else
{
Serial.print("distance is:");
Serial.print(distance/100);
Serial.print("m");//米输出数据
D=distance/100;
}
}
else if(z==LOW)
{
if(distance/2.45<=100)
{
Serial.print("distance is:");
Serial.print(distance/2.45);
Serial.print("in");//英寸输出数据
D=distance/2.45;
}
else
{
Serial.print("distance is:");
Serial.print(distance/2.45/12);
Serial.print("ft");//英尺输出数据
D=distance/2.45/12;
}
}
else Serial.print("No more ");
Serial.println();
for(i=4;i<=3+D;i++) //亮灯数据
{
digitalWrite(i,HIGH);
}
delay(2000);
for(i=4;i<12;i++) //清空亮灯数据
{
digitalWrite(i,LOW);
}
delay(1000);
}
作者:
鲁亮
时间:
2018-12-18 14:59
看看其他人的帖子,你还是没有按规范来写,代码添加方式
欢迎光临 重工电子论坛 (http://cqutlab.cn/)
Powered by Discuz! X3.1