/*
*/
constexpr uint8_t trigPin {3};
constexpr uint8_t echoPin {2};
constexpr uint8_t outPin {4};
unsigned long lastTime = 0;
unsigned long duration = 0;
void trigger(){
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(10);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
}
void getPulse(){
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin,HIGH);
if (duration > 0){
Serial.println(duration/58);
} else {
Serial.println("Timeout");
}
}
void sendPulse(){
if (duration > 0){
digitalWrite(outPin,HIGH);
delay(duration/100);
digitalWrite(outPin,LOW);
duration = 0;
}
}
void setup() {
Serial.begin(115200);
pinMode(outPin, OUTPUT);
digitalWrite(outPin,LOW);
}
void loop() {
if (millis()-lastTime > 2000){
lastTime = millis();
trigger();
getPulse();
}
sendPulse();
}