tgyfish 发表于 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也就是测试用。目前存在的问题就是他们都能测而且数据都对,上图?
现在估计是电路的问题,有一个灯正常的亮了另一个微微亮,基本功能已经实线~~~

tgyfish 发表于 2012-11-10 10:24:44

目前认为不是板子口的问题,我换了12口输出问题也一样,不知道什么地方还有问题!

bacon6581 发表于 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);
    }

tgyfish 发表于 2012-11-10 22:44:41

bacon6581 发表于 2012-11-10 14:14 static/image/common/back.gif
一个灯亮,一个灯微亮,应该是你接的电阻和led不一样吧,把7、8脚的连线换下,看看灯是不是第一个微亮,第二 ...

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

test01 发表于 2012-11-11 00:27:01

换成bac回复的以后
开头的
digitalWrite(7, LOW);
digitalWrite(8, LOW);
去掉
页: [1]
查看完整版本: 两个超声波测试于今早完成。