极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10238|回复: 4

两个超声波测试于今早完成。

[复制链接]
发表于 2012-11-10 10:17:53 | 显示全部楼层 |阅读模式
本帖最后由 tgyfish 于 2013-4-22 13:22 编辑

先上程序,其实很简单,但是对于我这种小白确实有一点点~~~
const int TrigPin = 2;
const int EchoPin = 3;
const int Tri = 4;
const int Ech = 5;
float cm1;
float cm2;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(Tri, OUTPUT);
pinMode(Ech, INPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}

void loop()
{
  int i;
  for(i=1;i<=2;i++)
{
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  if(i=1)
  {
    digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
    delayMicroseconds(2);
    digitalWrite(TrigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(TrigPin, LOW);
  
    cm1 = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
    cm1 = (int(cm1 * 100.0)) / 100.0; //保留两位小数
    Serial.print(cm1);
    Serial.print("cm1");
    Serial.println();
    delay(10);
  
    if(cm1<5)
    {
      digitalWrite(7, HIGH);
    }
  }
delay(50);
  if(i=2)
  {
    digitalWrite(Tri, LOW); //低高低电平发一个短时间脉冲去Tri
    delayMicroseconds(2);
    digitalWrite(Tri, HIGH);
    delayMicroseconds(10);
    digitalWrite(Tri, LOW);
  
    cm2 = pulseIn(Ech, HIGH) / 58.0; //将回波时间换算成cm
    cm2 = (int(cm2* 100.0)) / 100.0; //保留两位小数
    Serial.print(cm2);
    Serial.print("cm2");
    Serial.println();
    delay(10);
  
    if(cm2<5)
    {
      digitalWrite(8, HIGH);
    }
  }
}
}
熟悉程序的看一下程序就知道我的电路了,7,8,脚接的是led也就是测试用。目前存在的问题就是他们都能测而且数据都对,上图?
现在估计是电路的问题,有一个灯正常的亮了另一个微微亮,基本功能已经实线~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2012-11-10 10:24:44 | 显示全部楼层
目前认为不是板子口的问题,我换了12口输出问题也一样,不知道什么地方还有问题!
回复 支持 反对

使用道具 举报

发表于 2012-11-10 14:14:18 | 显示全部楼层
一个灯亮,一个灯微亮,应该是你接的电阻和led不一样吧,把7、8脚的连线换下,看看灯是不是第一个微亮,第二个亮了。

if(cm2<5)
    {
      digitalWrite(8, HIGH);
    }
你的两个小灯应该触发了,一直亮着的吧。换成这样
if(cm2<5)
    {
      digitalWrite(8, HIGH);
    }else{
      digitalWrite(8, LOW);
    }

回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-10 22:44:41 | 显示全部楼层
bacon6581 发表于 2012-11-10 14:14
一个灯亮,一个灯微亮,应该是你接的电阻和led不一样吧,把7、8脚的连线换下,看看灯是不是第一个微亮,第二 ...

电阻没问题灯也没问题,我都试过了但是就是第二个超声波的有问题,8脚我也换了12脚还是一样,至于你说的已经触发的那个循环开头我又弄低了,所以今天晚上再测试看看什么问题~
回复 支持 反对

使用道具 举报

发表于 2012-11-11 00:27:01 | 显示全部楼层
换成bac回复的以后
开头的
digitalWrite(7, LOW);
  digitalWrite(8, LOW);
去掉
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-2 20:50 , Processed in 0.039071 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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