Я пытаюсь сделать сенсорный триггер унитаза с помощью датчика vl53l0x, у меня проблемы с запуском действия, пока моя рука находится перед датчиком в течение 5 секунд или около того, в то время как я пробовал другой версии blinkwithoutdelay sketches и другие методы, найденные в Интернете, все они запускают 5 секунд после того, как я потянул руку за датчик, чего я не хочу. Заранее спасибо, я опубликовал свой набросок к тому, что у меня есть. Заранее спасибо !
// Library for TOF SENSOR
#include <Wire.h>
#include <VL53L0X.h>
VL53L0X sensor;
// Time calculation
unsigned long startTime;
unsigned long endTime; // store end time here
unsigned long duration; // duration stored
byte timerRunning;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Wire.begin();
sensor.init();
sensor.setTimeout(500);
// Start continuous back-to-back mode (take readings as
// fast as possible). To use continuous timed mode
// instead, provide a desired inter-measurement period in
// ms (e.g. sensor.startContinuous(100)).
sensor.startContinuous();
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000);
int tofdata = sensor.readRangeContinuousMillimeters();
int distance = tofdata / 10; // convert mm to cm
Serial.print( distance ); // print new converted data
Serial.println( " cm" );
// Code for presence detection
if ( timerRunning == 0 && distance <= 20 ){
startTime = millis() / 1000;
Serial.println("time started, starting count");
timerRunning = 1;
}
if ( timerRunning == 1 && distance >= 20 ){
endTime = millis() / 1000;
timerRunning = 0;
duration = endTime - startTime;
Serial.println ("Presence detected for seconds: ");
Serial.print(duration);
}
}
if (distance < 20) { Serial.println ("Presence detected."); }
- person Johnny Mopp   schedule 18.03.2019