重工电子论坛

标题: 【实验室培训_201810期】+刘智中+第五周任务(软件) [打印本页]

作者: 刘智中    时间: 2018-12-15 18:54
标题: 【实验室培训_201810期】+刘智中+第五周任务(软件)
一、任务要求:了解并掌握运用ardunio单片机控制SR04超声波实现对距离数据的采集,并且根据输出的距离数据来改变跑马灯的样式,并根据不同按键的输入状态输出不距离数据类型(厘米,米,英尺,英寸)。
二、工作环境:通过ardunio软件编程对SR04超声波实现对距离数据的采集。
三、实现步骤:对原有的程序进行改写,运用两个按键实现通过串口监视器输出四种种不同的距离信息;再通过距离数据对LED灯进行控制。  实际操作线路连接:

     
  串口数据:
     

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