-1

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

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

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

例如:我将手放在传感器前面,它会倾倒液体 2 秒钟。之后等待 3 秒,如果距离 < 5 厘米,则可以再次倾倒。

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

4

1 回答 1

1
#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);
    }
}
于 2020-12-15T13:17:11.477 回答