Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Arduino上每X秒发生一次_Arduino_Arduino Uno_Arduino Ide_Arduino Ultra Sonic - Fatal编程技术网

在Arduino上每X秒发生一次

在Arduino上每X秒发生一次,arduino,arduino-uno,arduino-ide,arduino-ultra-sonic,Arduino,Arduino Uno,Arduino Ide,Arduino Ultra Sonic,所以,我想做一种洗手液。我有一个超声波传感器 现在它是这样工作的:当距离小于5厘米时,它会倒液体 我想做的是:当距离

所以,我想做一种洗手液。我有一个超声波传感器

现在它是这样工作的:当距离小于5厘米时,它会倒液体

我想做的是:当距离<5厘米时,倒2秒钟。2秒钟过后,再等待3秒钟,然后再次测量

我把我的手放在传感器前面,它会把液体倒出2秒钟。然后等待3秒钟,如果距离小于5厘米,则准备再次浇注


谢谢你,那会很有帮助的。我真的不知道如何实现这样的计时器。

旁白:最好等到没有5厘米的东西以及时间限制。所以我只想倒2秒钟。就像你在商场看到的那样。然后准备在3秒钟后再次倒酒,以此类推。这就是循环。我的意思是,在重置循环之前,不仅要等待3秒钟,而且要等到没有范围。画一张流程图。你可以访问像www.google.com这样的网络搜索服务吗?我们希望你能表现出自己的努力。arduino相关问题应包含代码。请阅读
#define DISTANCE_IN_MM          50u
#define DISPENSE_DURATION_IN_MS 2000u
#define DISPENSE_TIMOUT_IN_MS   3000u

// Function declarations.
//
uint16_t ultrasonic_sensor_get_distance();
void     turn_dispenser_on();
void     turn_dispenser_off();

void loop()
{
    // Poll sensor distance. If under threshold, pour.
    //
    if (DISTANCE_IN_MM >= ultrasonic_sensor_get_distance())
    {
        turn_dispenser_on();
        delay(DISPENSE_DURATION_IN_MS);
        turn_dispenser_off();
        delay(DISPENSE_TIMOUT_IN_MS);
    }
}