Excuse me, I’m working on a project where as a part of it I am trying to make a system a bit similar to the IR flashes used by TV remotes. The thing is I need to read not only a string of data (probably just below 32 bits as my current plans go) but also get an flux (I’m not worried about exact W/m^2 just having enough data to guess at range once I’ve done some calibration) value for how bright the infrared is AND I need it to not be sensitive to reflections off things in the environment (mostly 3d printed PLA plastic shapes of various sizes and colours) but to only detect signals and intensity when there is a direct line of sight from the IR LED to the IR receiver. I’m thinking I’ll need to communicate a 32 bit signal between 10 and 20 times per second, and would like to make the time for the 32 bits to be sent as short as possible so that the overall proportion of time for which flashing codes are present is minimised. I have looked a bit about NEC, sony, philips and other common protocols for infrared data transfer and while I’m not sure which to use yet, or if I might end up with something custom but similar think I can get an arduino to control the LED that transmits and another to use interrupts to read the detector both coded with whatever protocol I decide upon. their will likely be some noise in the environment if from nothing else than ceiling lights which will leak into the IR a bit. I will be operating at ranges between the LED and detector in the region from perhaps 1.5m down to about 5cm.
I’ve already picked a brand of LED, I don’t have much choice in this as it was the only sort I could find with a small enough size to fit in the place it needs mounting. It emits at 950nm.
So I’m now a little torn on sensors and what type to pick. One option is some form of simple IR phototransistor, this can get intensity and if I gather some data on the typical intensities to expect after reflection I can program the receiving arduino to ignore signals for which the analogue input value is this low. The issue here is that any noise in the environment will mess things up, and the range could be quite limited. The other option is a device such as a TSOP382 (datasheet at https://www.sparkfun.com/datasheets/Sensors/Infrared/tsop382.pdf ), but this won’t give me an intensity. I could have the receiving arduino connected to a phototransistor as well and use that for intensity readings while taking the data readings through the TSOP382, but also I know that using something like a TSOP382 requires the transmitted signal to be modulated, so modulation might make reading with the phototransistor a little trickier. I worry that with the kinds of gain control something like the TSOP382 contains it might pick up reflected signals far too easily. I could also consider some sort of modulation but use phototransistors solely at the receiving end and no TSOP type device, then apply something a little like a fourier transform to try to identify the modulated signal from amid background noise but I’m not sure how easily this could be done while the arduino is also trying to receive the data.
Can anyone suggest what sort of sensor device I might be best with, and which if any of the methods I am thinking of could be most suitable, it will need to be quite cheap (under £1 per unit, ideally under 50p) because once I’ve got one working I need to scale this up a bit and make quite a lot of these.
BTW: if anyone knows about how reflective PLA 3d printed plastic tends to be for 960nm IR, or how thick a piece is needed to block transmission such information would be quite welcome.