使用Javascript检测PIR传感器将值设置为0的时间

时间:2015-08-10 02:36:17

标签: javascript intel-xdk

我正在使用PIR传感器来检测环境中的运动。当有运动时,PIR传感器将值1发送到控制台。一旦检测到没有动作,它就会每秒通过setInterval()多次转到0。现在,在那个时间点,我想检测0到0的时间,然后在10分钟时做一些事情。我想在动作开始时做new Date().getMinutes();一次,然后在动作停止时再做一次并比较这两个。我是在正确的轨道上吗?

2 个答案:

答案 0 :(得分:0)

我最后在setInterval()之外添加var i = 0;并在if (myDigitalValue === 0)循环内保持i++,直到达到我要查找的秒数以及等于我跑了一个方法。

答案 1 :(得分:0)

(new Date()).getMinutes()将返回"分钟"当前时间的一部分,即分针指向时钟的位置。您可能想要的是从特定点开始经过的绝对时间。幸运的是,有一种简单的方法可以确定与Date对象(或其中两个)的时差:

begin = new Date();
. . . time passes . . .
end = new Date();
timeDiffInMilliseconds = end - begin;

换句话说,当你从另一个{1}}中减去一个Date个对象时,你会得到毫秒级的时差(对于多态运算符来说很苛刻)。

这样做的一个优点是,如果您想要更改测试的频率或时间长度,您只需更改相关的频率即可。使用您描述的循环,两者不必要地连接在一起,这可能更容易出错。