-1

だから、手指消毒剤を作りたい。私は超音波センサーを持っています。

現在はこのように動作しています: 距離が 5cm 未満になると、液体が注がれます。

私がやりたいことは、距離が 5 cm 未満の場合、2 秒間注ぐことです。2 秒経過したら、さらに 3 秒待ってから再度測定してください。

例: センサーの前に手をかざすと、液体が 2 秒間注がれます。その後、3 秒間待機し、距離が 5 cm 未満の場合は、再び注ぐ準備が整います。

ありがとう、それは大いに役立つでしょう。このようなタイマーを実装する方法が本当にわかりません。

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 に答える