I'm currently using this set of infrared emitters and detectors. It appears that I only get about 10 cm of signal before the detector doesn't pick it up. It's on +5v power with a 10k pull-down resistor connected to ground. Without the resistor, the emitter burns up. With a 150 ohm resistor (I calculated this to be around the minimum resistor), there does not appear to be a change in distance. Is there any way to increase the range without damaging the emitter?
Micromice use reflected light to measure distance. Is that your application? The same technique works for object detection, after all robot mice must not bump into things :-)
According to the spec of the devices you reference, the emitter spec is:
Continous forward current: 50mA
Power Dissipation 75mW
Peak Forward Current (300pps, 10us pulse): 1A
So, pulse the emitter at near 1A to enable sensing from further away. If you have a microcontroller, that is easy to arrange. Others are better qualified to offer the pure electronic solution.
One microcontroller approach uses a capacitor, sized to deliver 1A for a couple of times more than 10us, and a bipolar or FET transistor to switch power through the emitter.
Searching for "micromouse pulsed emitters" will turn up several places with all the details you might need.
Light intensity is proportional to 1/Distance^2
So the intensity will need to be 4x bigger to double the distance.
Assuming the device is linear, the difference between 50mA and 1A is a factor of 20. Sqrt(20) is about 4.5x, which is quite a big improvement, well into your hoped-for distance.
The emitter signal is modulated so that stray light can be detected and ignored. The Sun, is a very large source of IR, and can easily confuse or 'blind' the detector.
A simple technique to use the modulation is: measure the detector value with the emitter off, measure the detector value with the emitter on, then subtract the first from the second. If the answer is close to zero, then either the light beam is blocked or it is being blinded and can't detect a crossing object. For a "burglar alarm", that might be enough to trigger it.
A much better approach:
Having said all of that, IMHO a much better approach, which could be implemented without an MCU but it might be complex, and which would give more than 12 feet (4 metres) is to use an IR remote control sensor as the receiver.
I have controlled TVs from more than 30 feet away with a single emitter, using a TV-be-gone. So the receiver works extremely well.
However, this is off-topic.
Some parameters that will affect your component selection:
- Do you have other sources of interference (e.g. fluorescent lights)?
- Power requirements?
- What is the range that you'd like to get?
- Are you transmitting data, or just detecting the presence/absence of an object?
- Indoor/Outdoor use?
From General Overview of IR Transmission in Free Ambient: "The maximum possible transmission distance of an IR remote control system depends on various parameters, but is mainly conditional on the radiant intensity of the emitter (Ie) and the sensitivity of the receiver (Eemin.). Additionally, the reflective conditions of the test room, the optical transmittance of windows or light guides in front of the receiver and the disturbance conditions influence the maximum distance obtainable. "
Should be possible to calculate the theoretical maximum range of your receiver pair using Ee_min (sensitivity of receiver) and Ie (radiant intensity of emitter), where d = sqrt(Ie / Ee_min).
Fixed Gain - Interrupter/Light Curtain
This Vishay product brief suggests that there exist sensors that are "fixed gain type (AGC 0) with a fast 300 µs reaction time in light curtain and perimeter guard applications up to 30 meters".
It sounds like a fixed-gain IR receiver, with an appropriately matched transmitter, might be able to get you what you want, if you want object detection. Are you looking for communication over IR, or simply object detection via IR?
Here's what I recommend for you, as I've worked with a similar set of detectors at distances of around 15'. Upping the power on the emitter will yield very modest gains. Adding more emitters works a little better I think.
You're probably gonna want to modulate your signal - you're likely going to be testing and using your gadget in artificial lighting or outdoors and youll need a way to block all that DC noise. Modulating a signal is a good way to do this:
TX (use a transitor, switch on and off really fast)--> ~~~~~~~--->TRANSRESISTIVE AMP -> HiPass Filter ->AMPLIFICATION -> peakDetector
The transresistive stage (your detector) will give you good linearity (usually a concern with stuff like this). Pass only high frequencies with a corner a little below the frequency your emitter is working at, then amplify. The better your filter, the higher you can crank the gain. You'll find that this is a delicate balance. Here's a good example of this type of circuit. http://rescomp.stanford.edu/~hpan/fingerroll/ir.html
These components are just bare IR led and IR photodiode. To build up a reliable, high-distance communication or detecting mechanism, you need a lot of additional components.
- you need to increase receiver sensitivity - for that you may need an IR filter, but you definitely need a pulsing signal. Standard remote controllers use 38-40kHz pulses. The receiver this way can differentiate from a pulsed signal and a steady one by using a simple AC coupled amplifier.
- the receiver side needs an amplifier. This shall only amplify AC, so the pulsing signal, this way your sensor can work also in direct sunlight and can reliably detect IR pulses.
- the receiver shall have an amplifier with automatic control of sensitivity - this way you can detect IR from 10cm as well as from 10m equally well.
Happily, you don't need to invent all of this. Use an off the shelf IR receiver, such as http://www.vishay.com/docs/82491/tsop382.pdf instead of a simple photodiode. This device contains an IR photodiode, an AC coupled amplifier, an AGC for automatic level control, etc, etc... and will emit a steady on/off signal once it detects a 38Khz pulsing IR light.
You can use any off the shelf IR remote control transmitter as a transmit side.
If you have a microcontroller, it is a matter of 10 lines of code to produce an IR output. In fact, you can send different data over the IR flashes - just like a regular IR remote does. https://learn.sparkfun.com/tutorials/ir-communication
If you have time, you can do a simple IR modulator with the 555 chip, there are plenty of examples, see http://www.robotroom.com/Infrared555.html