I'm building a device using microcontrollers, and part of the device necessitates target recognition. That is to say, if there are three targets, A B and C, I want my device to know when I'm pointing at no target, or Target A, or Target B, etc. I was thinking originally of finding different wavelengths of IR LEDs and putting them around each target (each would have a different wavelength) but I want this to ideally be able to reach across a room, let's say 30 ft. Is this feasible with IR receivers and transmitters, or is there a better alternative? And, is the varied wavelength idea with these transmitters feasible otherwise?

  • $\begingroup$ think about this .... three TV remote controls .... each one has a different button pressed ..... your pointing device contains an IR receiver .... use optics to "see" only one remote control at any one time $\endgroup$
    – jsotola
    May 11, 2019 at 20:45
  • $\begingroup$ @jsotola, that looks very answer-ish to me. make it one? $\endgroup$
    – TimWescott
    May 12, 2019 at 17:42
  • $\begingroup$ it may be answer-ish, but it is only a hint to direct thoughts towards using coded IR transmitters ..... actual TV remote controls may not work, because when a button is held down, the transmitted code varies with the manufacturer .... with some, the button code repeats, but with others "repeat last button" code is transmitted $\endgroup$
    – jsotola
    May 12, 2019 at 20:50

1 Answer 1


An IR transmitter is a circuit and an LED. An IR receiver is an optical filter (essentially a piece of colored plastic, but the "color" is in the IR), a phototransistor or photodiode, and a circuit.

To make what you want using different wavelengths, you need to find IR LEDs with non-overlapping emissions (so they don't interfere with each other), and you need to find three different kinds of IR filter material, each that passes the light from one of your LED types but not from the other two.

Just off the bat, this doesn't sound feasible for a commercial application, much less hobby. If you were getting a PhD in robotics and had a friend down the hall researching optical filter materials -- maybe you could do it.

The suggestion of using a TV remote would work, more or less, although TV remote receivers have automatic gain control, so it would be difficult to make fine distinctions in direction.

Part of my background is in radio and communications signal processing, so the technique that leaps to my mind is to have each LED beacon use identical LEDs, but pulse at a different frequency. You'd want the frequencies separated enough for easy discrimination with filters, and probably not harmonically related. So, for example, 50, 55 and 60kHz. If you build the receiver circuit correctly you can amplify the output of the photodetectors with a circuit that has a passband of 50-60kHz, then either run them into three separate discriminator circuits, or run them into an ADC that samples sufficiently fast (200kHz is my knee-jerk "fast enough" suggestion, but there's wiggle room there) and do the discrimination in software.

Doing the "sample first then process in software" option requires a sufficiently powerful microprocessor to do the discrimination -- my gut feel is that anything 8-bit would be woefully inadequate, but an ARM Cortex M4 or better core running fast and with reasonably efficient code would do it. It requires a healthy dose of DSP chops to write the software.

Doing the "discriminate in circuitry" option requires a filter bank of three filters centered on the pulse frequencies, with reasonably well-balanced gains, followed by some sort of amplitude detection into three times as many ADC channels. It requires a healthy dose of analog circuits chops to design the circuits, and you'll need to deal with component variation and find the board space for the circuitry.

No matter how you do the discrimination, once you get your "channel per target" into your actual direction-finding software, you can use whatever technique would work for a single beacon to find each one of the three.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.