求大神看一下为什么这里的delay不起作用-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: a976764010

[未解决] 求大神看一下为什么这里的delay不起作用

[复制链接]
发表于 2019-7-8 16:59 | 显示全部楼层
int ASignal = A0;
int x=6,y;

void setup() {  
  pinMode(x,OUTPUT);
  digitalWrite(x,HIGH);
}

void loop() {
  y=analogRead(ASignal);
  if(y>700)
  {
    delay(1000);
    digitalWrite(x,LOW);   
  }
  else if(y<=700)
      {
        delay(1000);
        digitalWrite(x,HIGH);
      }
}
发表于 2020-4-11 12:12 | 显示全部楼层

回帖奖励 +2 金币

厉害厉害,顶一下。
发表于 2020-4-12 00:56 | 显示全部楼层

回帖奖励 +2 金币

delayI(1000)是需要你if条件成立才延时,你没有成立怎么延时
发表于 2021-8-30 09:58 来自手机 | 显示全部楼层

回帖奖励 +2 金币

2年前的冷饭,不知道炒熟没有?看着像是没问题啊(少的反括号应该是粘贴时漏的)。假设上电时y<700,x将一直为高;假设给y一个>700的信号,并且小于1秒,x将在if中被拉低,1秒后回到loop中,此时y<700,运行else句子将x拉高。如果y>700时间高于1秒x低电平时间就会不止1秒。晚上回家试试。
发表于 2021-8-30 19:10 | 显示全部楼层
mmgg1721620 发表于 2021-8-30 09:58
2年前的冷饭,不知道炒熟没有?看着像是没问题啊(少的反括号应该是粘贴时漏的)。假设上电时y<700,x将一 ...

微信截图_20210830190356.png
好像就是这么个意思。把A0拉高后输出会有一个1秒的低电平。
按说A0处应该接一个电位器这样信号稳定,有点懒就没有接,线悬空信号不太稳定。
发表于 2021-8-30 23:39 | 显示全部楼层

回帖奖励 +2 金币

mmgg1721620 发表于 2021-8-30 09:58
2年前的冷饭,不知道炒熟没有?看着像是没问题啊(少的反括号应该是粘贴时漏的)。假设上电时y<700,x将一 ...

你說的是程式邏輯的執行結果,
但這結果不是樓主想要的,也就是說,
他程式寫錯了,就這麼簡單

他要的是就算 y 一直持續 >700,
x 也只想被拉低 1 秒後回復為高,
但 x 在 y 持續 > 700 時竟被
持續拉低,認為是 delay 失效了...

不知道 2 年後他會不會覺得當時
的想法很好笑 XD
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 01:53 , Processed in 0.075716 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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