
Here is an app note from Mitsubishi Electric Research Laboratories describing how to implement short-range low-bandwidth bidirectional communication using common LEDs.
It’s called LEDComm and requires only two pins of a microcontroller and a current limiting resistor to function. It works by making use of the fact that LEDs, once reverse biased, are also pretty efficient photodiodes, or light sensors.
Reversed biased LEDs can be modeled with a current source proportional to the light received, and a parallel capacitor. To read the amount of light the LED has received one must first charge the capacitor, and then measure the time it takes for it to be discharged by the current source.
By connecting the LED as shown below and alternating from a forward light emitting stage to the reverse light receiving stage a simple short-range communication is possible.

For more in-depth explanation, as well as for some circuit examples check out the article.
Via Electronics-Lab.

Now, now more IR sensors required, I hope!! :)
Reminds of this: http://www.edn.com/article/462289-LED_senses_and_displays_ambient_light_intensity.php
Prof. Dhananjay Gadre from NSIT, India’s design idea at EDN.
Now the question is if different color LEDs detect only light in their own color, or will there be interference between multiple colored LEDs.
I think that the spectrum that an LED is sensitive to, should broadly coincide with the frequencies it emits!
the article states it is sensitive to the light spectrum around and above the emitting frequency
Well looking at http://blog.blinkenlight.net/2011/12/01/thank-you-world/ , I found this quote:
“In order for the LEDs to detect anything the light must have a shorter wavelength than they emit. Bad news.”
Yes, a particular LED can only detect light with wavelength same or shorter than it’s own.
I had been using LEDs for my final year sun tracking solar project and had a hard time searching for specific LEDs that work for outdoor sunlight.
You can’t use red and yellow cause ther’re too sensitive and the light around us is saturated with red from heat sources and yellow from the sun. You can’t use blue either cause there’s not much blue component around. White LEDs are also out as they’ve different made compare to normal LEDs. That leaves us to green and the problem get even worse as there’s different hue of green LEDs out there.
Lastly the case of the LED has to be fully transparent. Colored and diffused case won’t work at all. And besides making the LEDs acting like a capacitor to measure the discharge time, it could be used directly as low current voltage source with it’s specified forward voltage drop as the maximum voltage output.