极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11786|回复: 4

两个超声波模块的控制,上小程序,为什么不能实线?要中断吗?

[复制链接]
发表于 2012-11-9 17:26:28 | 显示全部楼层 |阅读模式
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()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);

digitalWrite(Tri, LOW); //低高低电平发一个短时间脉冲去Tri
delayMicroseconds(2);
digitalWrite(Tri, HIGH);
delayMicroseconds(10);
digitalWrite(Tri, LOW);

cm1 = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
cm1 = (int(cm1 * 100.0)) / 100.0; //保留两位小数
Serial.print(cm1);
Serial.print("cm1");
Serial.println();
delay(100);

cm2 = pulseIn(Ech, HIGH) / 58.0; //将回波时间换算成cm
cm2 = (int(cm2* 100.0)) / 100.0; //保留两位小数
Serial.print(cm2);
Serial.print("cm2");
Serial.println();
delay(100);

while(1)
{
if(cm1<5)
{
  digitalWrite(7, HIGH);
  digitalWrite(8, LOW);
}

if(cm2<5)
{
  digitalWrite(8, HIGH);
  digitalWrite(7, LOW);
}

}

}
现在的情况是8脚的灯亮了然后怎么样都是8脚亮没变化!就是失败的意思哈?!
回复

使用道具 举报

 楼主| 发表于 2012-11-9 23:06:20 | 显示全部楼层
自己顶下,叔叔们看看~~~
回复 支持 反对

使用道具 举报

发表于 2012-11-9 23:15:07 | 显示全部楼层
爱,鱼啊,while(1)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-9 23:22:41 | 显示全部楼层
test01 发表于 2012-11-9 23:15
爱,鱼啊,while(1)

删后串口显示他们测的距离都是0,然后拆掉一个模块就正常!求解~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-10 09:58:59 | 显示全部楼层
test01 发表于 2012-11-9 23:15
爱,鱼啊,while(1)

叔叔,是我脑抽了没弄好,现在搞好了,但是灯会一直亮下去,还要写个让它黑的程序吧·
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-19 23:06 , Processed in 0.052338 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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