// pin's config const int Trig = 2; const int Echo = 3; // current led state int led_state=0; long led_period_on = 10; //periods = 300*10=3s - how long wait after object disappear? long led_left_on; //if this is 0 - turn off void setup() { pinMode(Trig, OUTPUT); pinMode(Echo, INPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); //default turn on turn_led(1); led_left_on = led_period_on; } void loop() { if ( led_left_on-- > 0 ) { if (led_state == 0) turn_led(1); } else { if (led_state == 1) turn_led(0); } digitalWrite(Trig, LOW); // clear delayMicroseconds(2); // wait 2 mks digitalWrite(Trig, HIGH); // run delayMicroseconds(10); // wait 10 mks digitalWrite(Trig, LOW); // clear long time_us=pulseIn(Echo, HIGH); // How long was signal? if ( time_us != 0 && time_us/58 ) // to santimeters { led_left_on = led_period_on; if (led_state == 0) turn_led(1); } delay(300); // run again } // turn led on/off void turn_led( int led_state_) { led_state = led_state_; digitalWrite(11, led_state == 0?LOW:HIGH); digitalWrite(10, led_state == 0?HIGH:LOW);