Very good information. Thanks everyone.
@mikerj - Interesting. So when I use them to pull an input pin up to VDD, it's not the resistance of the diode that's changing to allow the flow of current? It's converting light to a current, which is a very small amount, so if I use it as a pull-up, that small current is amplified via VDD? Ill have to research how these work. So the way I coded this to work is that the blue diodes are off when the sensors are polled.
@GerryR - So the responsiveness is pretty weak with sensing an object, because your hand has to get pretty close to the sensors. I think it's because because Im polling the sensors too fast. I have the emitters being turned on with a constant current LED driver, via EUSART, that's sinking 100ma from them. I have to allocate more time for them before performing the ADC to see if that helps. The receivers are multiplexed. Each row of receivers is brought to 5V via port pins, one each row. The columns are connected to 4 input pins, one column each pin. The code associates the emitters, receivers, and blue LEDs into clusters. All blue LED are turned off, a TX diode is turned on and then the associated RX is polled.
@SeanB - So your saying that I need to set something up above each sensor at the same height and write code to adjust each sensor so that the ADC binaries are the same? I dont think I'll be able to do that until I have the TX and TX diodes permanently mounted to a circuit board etc, because right now they are just roughly in a protoboard.
@StillTrying - Interesting. So its more important that they are all as perfectly aligned than the responsiveness of each diode?
When I was swapping out the photo diodes, with the circuit running, some of the photo diodes would turn the blue LED on with no object above with only room light. Some of the photo diodes wouldn't. I find that to be vert frustrating. I attached an image of how the photo diodes are connected. The blue LEDs and emitters are connected to constant current LED drivers. The mircoprocessor uses EUSART to transmit data the the drivers.
I failed to mention that the processor varies the intensity of the blue diodes based on how close an object is to a sensor. I think I know what I have to do. I think I have to do what SeanB mentioned. I going to have to hard-code adjustment for each diode. That's going to suck because that's a hell of a lot more code. That seems very tedious and I want to make a few of these too!
There's has to be another way that I can do this, but for another time because I have to get this done now.