重工电子论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 4741|回复: 1
打印 上一主题 下一主题

【实验室培训_201810期】 王廷杰 第五周任务

[复制链接]

3

主题

4

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-12-17 00:04:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、任务要求:根据输出的距离改变跑马灯的样式,并根据按键的输入状态输出米或者厘米。
二、工作环境:Ardunio、SR04超声波传感器,根据串口监视器查看不同按键输入状态时的不同距离尺寸类型。
三、实现步骤:通过扫描按键从而改变不同的尺寸输出类型,当不按下时输出厘米按下输出米。当测量距离小于一米时则用映射将距离映射变为为1到8以内,然后根据距离的远近改变跑马灯亮的个数,当距离大于1米直接亮最大盏。
实验代码:
[C] syntaxhighlighter_viewsource syntaxhighlighter_copycode
#define Trigpin 2
#define Echopin 3

int led[8] = {4,5,6,7,8,9,10,11};//8个LED口
float Value_cm,Value_m;
int lednum,keynum;//灯亮变量和按键变量

void setup() {
  Serial.begin(9600);
  pinMode(Trigpin,OUTPUT);
  pinMode(Echopin,INPUT);
  pinMode(0,INPUT_PULLUP);
  for(int i = 0; i < 8; i++)
    {
        pinMode(led[i],OUTPUT);
    }
}

void loop() {
  digitalWrite(Trigpin,LOW);
  delayMicroseconds(2);
  digitalWrite(Trigpin,HIGH);
  delayMicroseconds(10);
  digitalWrite(Trigpin,LOW);
  Value_cm= float(pulseIn(Echopin,HIGH)*17)/1000;
  //将回拨时间换算成cm
  //接受到高电平的时间(us)*340m/s=接收到的时间us*17000cm/1000000us=接收到高电平的时间*17/1000
  
  Scankey();//扫描按键
 
  if(keynum==1)        //如果按键被按下
  {
  Value_m=Value_cm/100;
  Serial.print(Value_m); 
  Serial.println("m");
    }
  else                 //按键没有被按下
  {
  Serial.print(Value_cm); 
  Serial.println("cm");
  }



  if(Value_cm<100)
  lednum=map(Value_cm,0,100,0,8);   //将0~100cm以内的距离映射为0~8,便于用LED将它表示出来
  else
  lednum=8;                         //超过100cm的距离直接亮最大数目的LED灯
  
  for(int i=0;i<8;i++)
  digitalWrite(led[i],LOW);
  delayMicroseconds(1);
  
  for(int i=0;i<lednum;i++)
  digitalWrite(led[i],HIGH);
  delay(500);


}



  void Scankey()                 //扫描函数
{
  keynum=0;                     //清空变量
  if(digitalRead(0)==LOW)
  {
    delay(10);
     if(digitalRead(0)==LOW)
     { keynum=1;}
      }
    else
    keynum=0;
  }

实现现象:

IMG_6312.JPG (118.01 KB, 下载次数: 1064)

零盏

零盏

IMG_6318.JPG (160.13 KB, 下载次数: 1038)

一盏

一盏

IMG_6319.JPG (190.26 KB, 下载次数: 1070)

三盏

三盏

IMG_6320.JPG (165.38 KB, 下载次数: 1060)

最大距离

最大距离

NWZ03CBRP05]_M3CUHFI`X0.png (4.72 KB, 下载次数: 1054)

串口监视器

串口监视器
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

14

主题

69

帖子

485

积分

学生管理组

Rank: 8Rank: 8

积分
485
QQ
沙发
发表于 2018-12-18 15:40:35 | 只看该作者
还不错,可以
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:57 , Processed in 0.184596 second(s), 32 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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