安念念绵 发表于 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);
    }
}

Super169 发表于 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 static/image/common/back.gif
ledpin 沒設定成 OUTPUT.

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


谢谢,已经解决了哈。

darkorigin 发表于 2015-1-7 01:31:40

Super169 发表于 2015-1-5 12:06 static/image/common/back.gif
ledpin 沒設定成 OUTPUT.

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


细心。。。。。真细心~~~
页: [1]
查看完整版本: 新手菜鸟求助啊