极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11568|回复: 3

新手菜鸟求助啊

[复制链接]
发表于 2015-1-4 23:22:30 | 显示全部楼层 |阅读模式
用anduio做超神波测距预警,当到达一定距离的时候LED灯会闪烁预警,但是呢,自己弄了程序本身没问题,但是就是不能用,灯一直亮着,求哪位大神指导一下,方便的话可以发一下电路连接点,我看下自己有没错。在线等啊啊啊啊
  // 引脚定义
const int trig = 8;    // 触发信号
const int echo = 9;    // 反馈信号
int ledpin=10;


//初始化
void setup() {
  pinMode(echo, INPUT);
  pinMode(trig, OUTPUT);
  Serial.begin(9600);
}
//主循环
void loop() {
  long IntervalTime=0; //定义一个时间变量
  while(1){
    digitalWrite(trig, HIGH);//置高电平
    delayMicroseconds(15);//延时15us
    digitalWrite(trig, LOW);//设为低电平
   IntervalTime=pulseIn(echo, HIGH);//用自带的函数采样反馈的高电平的宽度,单位us
    float S=IntervalTime/58.00; //使用浮点计算出距离,单位cm
    Serial.println(S);//通过串口输出距离数值
    S=0;IntervalTime=0;//对应的数值清零。
    delay(500);//延时间隔决定采样的频率,根据实际需要变换参数
    if(S<5&&S>0.0);
    digitalWrite(ledpin,HIGH);
    if(S >=5)
    digitalWrite(ledpin,LOW);
    }
  }
回复

使用道具 举报

发表于 2015-1-5 12:06:39 | 显示全部楼层
本帖最后由 Super169 于 2015-1-5 12:09 编辑

ledpin 沒設定成 OUTPUT.

請看看 S 的值是否正確, 再看看以下一段:

    if(S<5&&S>0.0);
    digitalWrite(ledpin,HIGH);

多了一個 ; , 那句 digitalWrite(ledpin,HIGH); 就變成必然執行了.
當然, 如果 S>=5, 由於之後  digitalWrite(ledpin,LOW); , 算是勉強可補回.  只閃一下吧.

另外也要檢查一下接腳的方法, 如果 led 另一腳是接 5V, 那  digitalWrite(ledpin,LOW); 就會亮了.

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-6 22:19:46 | 显示全部楼层
Super169 发表于 2015-1-5 12:06
ledpin 沒設定成 OUTPUT.

請看看 S 的值是否正確, 再看看以下一段:

谢谢,已经解决了哈。
回复 支持 反对

使用道具 举报

发表于 2015-1-7 01:31:40 | 显示全部楼层
Super169 发表于 2015-1-5 12:06
ledpin 沒設定成 OUTPUT.

請看看 S 的值是否正確, 再看看以下一段:

细心。。。。。真细心~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 12:15 , Processed in 0.033970 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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