I was referring to the without delay method. That code is looking for a "constant" HIGH for 3 seconds. As I said before, you need to measure your pin, and set the IF statement accordingly. Analog high is 255, so if the pin is NOT 255 for 3 seconds, it won't trigger. So you need to set a value range so that it does trigger after 3 seconds.