LEDs As Sensors: Revisted

Thanks to the folks at Make: and Hack A Day, my research into the area of using LEDs as sensors has been receiving a lot of attention. With this attention comes questions. I like receiving questions. Only thing I don’t like about answering questions in the e-mail is the knowledge is locked up. Sure I could repost the e-mails, but it is sometimes difficult to follow the context after the thought train has left the station. With my rekindled interest, I wanted to take a short moment and summarize a few things.

These are just my opinions – and I welcome debate and feedback on them – I especially welcome anyone to be challenged by them enough to prove me wrong. LEDs as Sensors offer at least two avenues of usefulness; communications and interface. I haven’t dipped even a toe into the communications side of the pool – all my work has been on interface.

These are the applications I feel LED Sensors are a poor fit to replace:
#1 – The touchpad on your notebook. Seriously, no one but a geek would enjoy having 128 or more bright LEDs glowing continuously to replace the little capacitive discharge pad that is used 95% of the time today.

#2 – The keys on your keyboard. LED sensors are pretty slow, even a modest typist would be hindered by the response time.

#3 – Any application that needs to work outdoors. LEDs and the Sun do not get along.

These are the application I feel LED Sensors may work well in:
#1 – Keypads and interactive displays used for Art and Music. These applications fit the ostentatious nature of the interface, where the controls are as much a work of art as a functional device.

Yep, that is it… that is the only application I think LED Sensors offer any strength in.
Here is an example – Musician / DJ sound effects tablet:

Imagine a thin tablet like device, glowing brightly with powerful LEDs in an otherwise darkened club / dance hall / etc. The tablet accepts an ordinary 8×11 sheet of transparency film. Printed on the film are the names of pre-programmed effects / samples /whatever. Under the film, evenly spaced trios of LEDs are used to detect the presence of a reflective object. The tablet connects into the rest of your system using regular MIDI or whatever other interface one can think of. This tablet is no different than boxes hobbyists and musicians have been building or buying for years, except, the mechanical switches have been replaced with eye catching LEDs.

Here are a few other questions that have been raised:

Q: Do I have to use red LEDs?
A: No, technically any LED color works. Red is the cheapest and that is what I use. Along with yellow, red is almost the most sensitive.

Q: I tried IR LEDs and they seem very sensitive, why not use those?
A: The point of using LEDs as Sensors is to have an ostentatious interface. It’s not going to be very showy if the light is invisible. If you want to use infrared LEDs, use one emitter and one photodiode / phototransistor – it is a LOT easier.

Q: Does this work with organic / flexible LED displays?
A: I have no idea. Those displays are largely theoretical and prototypical in nature – maybe in five years when I can buy one for a few dollars, I’ll experiment with it. The organic compounds used to manufacturer these displays also have big problems with humidity and overall short lifespan – neither are very positive traits.

Q: Can you send me your ASM code for such and such?
A: No, no I can’t. I do not have any ASM code – I do not know how to program in assembler. I have code written in Proton Basic, which I will happily share.

Q: I want to get started with microcontrollers?!
A: Excellent – I’m not going to help you. There is a huge learning curve involved – a lot of it can be skipped by spending money (on proton basic). Check out www.sparkfun.com and www.crownhill.co.uk for good microcontroller stuff. Check out google.com for tons of info on learning microcontrollers.

Q: What microcontroller do you recommend?
A: I like the new PIC16F690 family from Microchip. It is a small inexpensive package that offers many features only found on larger processors (like dedicated i2c hardware). It also sports at least 10 ADC ports.


In closing, I would also like to share some basic info on what I’m working on at the moment. My current project is to get a stand alone system worked out for emulating mechanical switches. I consider this a valuable “core” building block behind the technology. I have momentary switches partly working, after that, a toggle switch shouldn’t be much harder. As a future goal, I would like to get “cores” built to emulate sliders and knobs. Those three elements should cover a great deal of the artistic / musical needs that I feel this technology is well suited for.

Thank you for visiting and I welcome your comments. My gmail is gordonthree – feel free to contact me about anything.

18 Replies to “LEDs As Sensors: Revisted”

  1. “The tablet accepts an ordinary 8×11 sheet of transparency film.”

    Nice idea. One corner or edge of the overlay could be printed with a barcode which IDs the overlay and sets the panel to the appropriate software setup automagically. Pop in a new overlay, you have a new instrument.

    Windows could be left blank for data displays, bar meters etc.

    An all-white LED panel could have colour added simply by printing it into the overlay..

  2. I’m interested in using this LED phenomena for the use of an in-car computer interface. My two big reasons are durability and lifespan, seeing as how dangerous it would be to have a capacitive and resistave touchpad exposed to the hazards of a car. Do you think this application would be wise, or is there something I’m forgetting?

  3. I think the main problem you’ll run into is totally unpredictable ambient lighting. The sensors are very sensitive to ambient light, and noise rejection could probably be solved in software, but it would take a LOT of code.

    I’d go with a capacitive sensor matrix – check out qprox.com – I don’t see why it would be dangerous to use them in an automotive application. For something a little different, a IR reflective based interface. You should be able to nestle an emitter and detector into almost anything, and protect them behind glass/plexi

  4. You know, you can use LEDs on the diagonal to get a bias reading… Think of the 5 side on a die. You’re using the middle dot to generate light, and you’re trying to read the value of one of the other dots. This leaves you with 3 dots that aren’t doing anything, and probably aren’t all covered. So, you should be able to use at least one of them to figure out how much ambient light there is. Use delta, not absolute values, to read sensors affected by ambient light… This is the first thing you learn when building sensors for robots 😉

  5. omgomgOMG!!!

    “This tablet is no different than boxes hobbyists and musicians have been building or buying for years, except, the mechanical switches have been replaced with eye catching LEDs.”

    You have just re-invented punch cards for the twenty-first century!!!!!

    Retro rules!

  6. Just an idea, one poster wanted to display something while trying to sense the input… you should be able to use bi-colored LEDs since they will be at different wavelengths. One used for sensing, and the other for displaying something (though if using the cheap green/red leds, it seems like you would want to use green for sensing, since red and amber are a little hard to tell apart, unless you are color blind)

    you could PWM the red LEDS to display the output of the touch sensor

  7. Hi I am a bit confused by two of your statements:

    “#2 – The keys on your keyboard. LED sensors are pretty slow, even a modest typist would be hindered by the response time.” Looking from your youtube video, the sensor seems to be really fast.. am I missing something?

    “#3 – Any application that needs to work outdoors. LEDs and the Sun do not get along.” Does this mean that the matrix needs to be in the dark to work, or just to see the matrix glowing?


  8. michael,

    using the sensors in analog mode (as seen in the various videos), they’re pretty quick … but they’re also prone to noise … adding post-processing to make them resist noise and or act like microswitches (in a keyboard) really slows things down … a modest typist would be hampered by the reponse rate … of course, a faster processor would help, but that’s a brute-force approach

    in regards to using the sensors in the sunlight … the sun is a broadband light-source, giving off all frequencies of light, the sensors are overwhelmed… even indirect sunlight is often too much

  9. Re: the typing thing, most touch-typists need tactile feedback, which an LED keyboard wouldn’t provide. The physical “click” of older-style spring-clip keyboards is ideal for fast typing. My Mom used to be a typist working her way thru grad school (think IBM Selectric) and she hates the new membrane style computer keyboards, because the key has to bottom out before your fingers “know” they’ve made contact, slowing her typing considerably AND beating her fingers up in the process.

    Electric typewriters were ideal because there was an actual thump as the type head hit the paper, giving obvious feedback as soon as the character appeared. Similarly, the click of the old-style computer keyboards occurs _before_ the key hits bottom, so by releasing pressure as soon as the click is felt, it’s possible to type much faster.

    In fact, there is a website dedicated to IBM type M keyboards called clickeykeboards.com. It’s amazing the prices people will pay for these old keyboards. I happened to inherit one from an old IBM AT. I use an adaptor I got from the above website. It’s heavy, doesn’t move around, is built like a tank, looks cool/retro, it feels great, and it’s extra-clicky! The downside is it only has 10 “F” keys.

    On the other hand, for your led keyboard idea, perhaps sounding a beep or click for each keystroke could accomplish the same thing. Unless of course you’re deaf (or wearing a dictaphone headset).

  10. Hi all ,i’ve been stuck with led – sensing for some time now , i tried running them in matrix config but the problem i’m facing is that when any one of the columns (other than the one in RV bias) is sent to high(for display purposes) the adc values do not change as sharply as before . and if any of the rows are sent to low (one of the rows connected to the adc pin needs to go low to glow one led)the sensors start interfering i.e all leds on the same row begin to react to light , Help!

  11. Have you thought about discarding the less significant bits of the A/D? maybe what way you’d be able to earn time and have them act more as 1’s and 0’s, or what about fuzzy logic, i’ve seen it work pretty well in motor speed controls.

  12. I’d like tu use LED diode like sensor. I try everything measure time to 0, measure voltage, but no good resultats. I’m using LPC2138. Can you send me your code, to see what’s wrong?
    TNX regards

  13. Hi! Very interesting work you’ve done here. Just one question. Do you experience inconsistencies with your LEDs? I’ve been able to measure light intensities by timing the discharge period (no ADC). I’m using a bunch of white LEDs but the discharge time varies A LOT from LED to LED. This leads me to deduce that most LEDs if not all weren’t manufactured to be used as a sensor hence their characteristics when used as one is highly inconsistent. Either that or my pile of white LEDs didn’t come from the same manufacturer. What’s your opinion on this?

Leave a Reply

Your email address will not be published. Required fields are marked *