Infared receiver 'bounces'?


I am trying to make a simple beam break sensor based on ir remote control receiver and ir emitter. Receiver spec here I chose the modulated receiver specifically because of its tolerance of ambient ir. The IR LED is modulated with a 555 and gives a nice 38kHz waveform on my scope. The IR receiver is connected via 220ohm resistor to a digital input on the arduino

Problem is the receiver (it's active low) goes low for perhaps a half second when the IR LED comes on and then starts bouncing between high and low. Blocking and unblocking the ir led restarts this sequence.

Is this by design, or does the problem lie elsewhere? :-?

Try adding a 5K-10K pullup to Vcc: I’m guessing that the output from the IR receiver is open-collector/open-drain.

How far away is the transmitter? The only other guess I’ve got is that the signal strength is marginal.


This sort of IR set up is designed to carry data not to detect an interrupt to a beam.

What is happening is that there is an AGC (automatic gain control) inside the receiver, when you first turn it on it sees the light and you get your logic low. But then as no data is transmitted the gain control backs off looking for data until there is no longer enough light to hold it on. What you need to do is to modulate the modulated IR with a low frequency square wave say 100Hz. Then at the receive end you will see a 100Hz wave when there is no blockage of the beam and nothing followed by your random pulses when there is a blockage.

You could try the pulsIn() function to determine between the two.