重工电子论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3370|回复: 1

【实验室培训_201810期】+刘智中+第五周任务(软件)

[复制链接]

3

主题

3

帖子

50

积分

注册会员

Rank: 2

积分
50
QQ
发表于 2018-12-15 18:54:50 | 显示全部楼层 |阅读模式
一、任务要求:了解并掌握运用ardunio单片机控制SR04超声波实现对距离数据的采集,并且根据输出的距离数据来改变跑马灯的样式,并根据不同按键的输入状态输出不距离数据类型(厘米,米,英尺,英寸)。
二、工作环境:通过ardunio软件编程对SR04超声波实现对距离数据的采集。
三、实现步骤:对原有的程序进行改写,运用两个按键实现通过串口监视器输出四种种不同的距离信息;再通过距离数据对LED灯进行控制。  实际操作线路连接:

      超声波测距.PNG
  串口数据:
      距离数据.PNG

源程序如下:
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);
}



回复

使用道具 举报

14

主题

69

帖子

485

积分

学生管理组

Rank: 8Rank: 8

积分
485
QQ
发表于 2018-12-18 14:59:45 | 显示全部楼层
看看其他人的帖子,你还是没有按规范来写,代码添加方式
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|cqutlab ( 渝ICP备15004556号

GMT+8, 2024-3-29 13:33 , Processed in 0.181222 second(s), 32 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表