[HN Gopher] Two ways to use an LED as a light sensor with Arduino
       ___________________________________________________________________
        
       Two ways to use an LED as a light sensor with Arduino
        
       Author : jgrahamc
       Score  : 98 points
       Date   : 2024-06-19 08:02 UTC (1 days ago)
        
 (HTM) web link (blog.jgc.org)
 (TXT) w3m dump (blog.jgc.org)
        
       | brokenmachine wrote:
       | Tricky. More than one way to skin a cat.
        
       | 2sk21 wrote:
       | Article like this are why I keep coming back to HN: I was using
       | an LDR (Light Dependent Resistor) for a similar task but this LED
       | idea is fascinating. It would have never occurred to me!
        
         | kragen wrote:
         | the photoresistor is more linear and gives you built-in
         | smoothing over a longer period of time, but (like other
         | photodiodes) the led is much faster
        
       | lynndotpy wrote:
       | Oh this is fun :) I knew LEDs and microphones could be used as
       | light sensors (and vice-versa), but I would never know the
       | specifics of how to do it. I appreciate this.
       | 
       | What other sensors/emitters can be reversed this way?
        
         | r2_pilot wrote:
         | It's helpful to step out of the box with those kinds of
         | questions, and consider what it is the sensor is doing.
         | Abstraction is great for programming and reasoning about
         | complex objects like cars (have key, insert key press pedal to
         | move, that kind of thing), but if you're going to use something
         | like a sensor in a way that it isn't designed, you have to go
         | lower in your abstraction level and look at, for example, the
         | physics of what it's doing. Often a thing that emits can
         | receive what it outputs (if you measure how the membrane of an
         | ultrasonic sound generator is moving, for example, although
         | you'd also have to add additional components at which point it
         | becomes a ping sensor), but sometimes it's not feasible. I
         | really enjoyed Practical Electronics for Inventors for this
         | kind of perspective.
        
         | regularfry wrote:
         | You can measure temperature with a heating element by measuring
         | the thermal noise. Not sure what circumstances that would be
         | useful in, though.
         | 
         | I can also remember a project that used the arm of a
         | galvanometer as a very sensitive balance for weighing tiny
         | masses, too, which is the same sort of idea but the way it
         | worked was to put a feedback loop around the voice coil and
         | measure the current needed to keep it locked in place against
         | the weight of the sample.
         | https://www.erowid.org/archive/rhodium/chemistry/equipment/s...
         | is a copy of the original article which would probably appear
         | at https://www.scientificamerican.com/id/down-among-the-
         | microgr... if I had access.
        
           | kragen wrote:
           | there's a national instruments demo of using this technique
           | to weigh an eyelash at
           | https://www.youtube.com/watch?v=v68Dica16CU
           | 
           | (although ti claims it's actually them
           | https://www.youtube.com/watch?v=n90whRO-ypE)
        
         | HarHarVeryFunny wrote:
         | You can use a speaker as a microphone, and vice versa.
        
         | HeyLaughingBoy wrote:
         | DC motors will generate electricity if you turn them by hand,
         | diodes (including LEDs) make very good temperature sensors (not
         | quite what you asked, but it's useful to know, sometimes).
        
       | EncomLab wrote:
       | The way those resistors are twisted together makes my heart
       | hurt....
       | 
       | Another fun fact about light and semiconductors is that the first
       | commercial digital camera - the Cromemco Cyclops - used a 32x32
       | memory ic that used a windowed dip package so the chip was
       | exposed to light. The memory was refreshed to all 1's, and the
       | light would flip them back to 0's with the strongest light
       | flipping the bits the fastest. The times were then parsed and
       | converted to pixel values.
        
         | jgrahamc wrote:
         | I promise I tried to find all my soldering gear.
        
           | EncomLab wrote:
           | lol - it's all good. Props to you for recognizing what was
           | going on and taking the time to research it and make use of
           | it!
        
           | petsfed wrote:
           | If you had the appropriate resistor on hand, you could just a
           | male-to-female jumper to span the distance. Have one lead of
           | the resistor plugged into the female end, and it serves the
           | same purpose as the 3 resistors twisted together.
           | 
           | No sense in soldering this together just for a quick-and-
           | dirty demo, right?
        
             | amelius wrote:
             | I'd use these: https://www.bounceled.com/product/inline-
             | wire-connector/
             | 
             | Yes, they work on resistor leads.
        
         | buescher wrote:
         | I didn't know about the Cromenco camera but I remember seeing
         | the trick in electronics/robotics books from the seventies.
         | Micron sold a windowed DRAM for that purpose back in the early
         | eighties, and I think a camera too. There was a construction
         | article in BYTE.
        
         | dmd wrote:
         | > The way those resistors are twisted together makes my heart
         | hurt....
         | 
         | YKINMKBYKIOK
        
       | rpaddock wrote:
       | Similar things have been around for a while and there are several
       | variations to be found for the AVR, using the I/O pins rather
       | than the ADC.
       | 
       | See US Patent 6,870,148 B2 March 22 2005 "LED WITH CONTROLED
       | CAPACITIVE DISCHARGE FOR PHOTO SENSING" by Mitsubishi Electric
       | Research Lab (MERL). https://image-ppubs.uspto.gov/dirsearch-
       | public/print/downloa...
       | 
       | Also:
       | 
       | Dietz, P.H., Yerazunis, W.S., Leigh, D.L., "Very Low-Cost Sensing
       | and Communication Using Bidirectional LEDs", ACM International
       | Conference on Ubiquitous Computing (UbiComp), October 2003.
       | BibTeX TR2003-35 - https://www.merl.com/publications/TR2003-35
       | 
       | Which is good for ~30 Baud and distances of inches at best.
       | 
       | https://people.ece.cornell.edu/land/courses/ece4760/FinalPro...
       | 
       | https://forum.chibios.org/viewtopic.php?t=2179
        
         | regularfry wrote:
         | I remember a project in Scientific American many years ago
         | which proposed using a distributed bunch of sensors using
         | reverse-biased green LEDs to measure atmospheric pollution
         | levels, but I can't immediately find it now.
        
           | rpaddock wrote:
           | Internet Search has become near useless of late, regardless
           | of which Search Engine is used.
           | 
           | Hopefully you find it and let us know.
           | 
           | Forrest Mims was the first to propose using the LED as a
           | sensor in the early 70s, not long after LEDs became common.
           | 
           | https://hackaday.com/2015/10/13/citizenscience/
        
             | detourdog wrote:
             | Archive.org is the closest thing I have found for the old
             | internet. If I'm interested in a topic the first I go to is
             | archive.org.
        
               | kragen wrote:
               | probably you should donate and also see if you can save
               | what you can: https://www.youtube.com/watch?v=a4KkiKDKw88
               | 
               | governments burn libraries
        
           | jgrahamc wrote:
           | Probably something from Forrest Mims. I have his stuff going
           | back to the 1970s and he was using LEDs like this for all
           | sorts of communication and environmental stuff way back.
        
             | rpaddock wrote:
             | Yes. We both posted that he originated the idea at the same
             | time.
        
             | regularfry wrote:
             | Very probably. This isn't it, but it's very closely
             | related: https://www.researchgate.net/publication/243581659
             | _LED_sun_p...
        
             | regularfry wrote:
             | Here we go! https://web.archive.org/web/19980131092505/http
             | s://www.scien...
             | 
             | Found via https://www.researchgate.net/publication/23434575
             | 4_An_Intern...
        
         | bloopernova wrote:
         | > Which is good for ~30 Baud and distances of inches at best.
         | 
         | This feels like it would be part of the plot of a Neal
         | Stephenson or Andy Weir book.
         | 
         | Our intrepid hero has to send super secret plans to save
         | humanity through glass to his partner, so they can prevent
         | Jupiter going supernova! But the Bad Guys are jamming wifi
         | signals!
        
           | dangets wrote:
           | As a university project I created a Morse code transmitter
           | and receiver circuit that used the same type of LED on both
           | sides. It worked pretty well up to a few inches apart.
        
         | kragen wrote:
         | the distance and baud rate depend a lot on the specific led
         | you're using and how you're measuring it
        
       | icpmoles wrote:
       | I remember the OG pebble using the backlight LEDs as ambient
       | light sensors but I can't find where I read it.
        
       | kragen wrote:
       | this was one of the first things i did with an avr. it's a little
       | more challenging on an attiny2313, because it doesn't have an
       | adc: http://canonical.org/~kragen/light_sensing/
        
       | NietTim wrote:
       | Bought a "proper" light sensor last week but would've fit my
       | needs. D'oh!
        
       | mikewarot wrote:
       | Decades ago, I built a sensor that detected a break in a path to
       | a retro-reflector up to 6 feet away using a single bi-color LED
       | and some op amps, etc. I don't remember all the details... but I
       | did learn how the photoelectric effect works, in my gut.
       | 
       | A red LED emits a lower energy photon than a green LED. Each will
       | pick up their own reflections, but the green LED will not pick up
       | the light from the red one.
        
       | zoky wrote:
       | Well I guess if a generator is just a motor run backwards then
       | this stands to reason...
        
       | dragontamer wrote:
       | Note: a photodiode is an expressly measured diode that does this
       | job.
       | 
       | An LED is still a photodiode, as this blogpost noted. But you'll
       | get more consistent results with a real photodiode (or
       | phototransistor, if you want a bit of amplification added in)
       | 
       | ----------
       | 
       | Obviously the diode works here and for this project. But given
       | higher levels of sophisticated photosiodes (but still a similar
       | circuit), you can choose photosiodes that detect infrared light
       | 
       | We humans light up like a light bulb in the infrared spectrum. So
       | two IR Photodiodes is all you need for a human motion sensor.
       | 
       | A motion sensor detects motion by looking at two pixels of IR
       | light. Motion is 'defined' as one pixel lighting up.... Followed
       | by the second pixel lighting up. If only one pixel lights up,
       | then no motion (it's just a glitch). Real motion should show up
       | across both pixels in a slight time delay fashion.
       | 
       | IR Photodiodes (or phototransistors) are used because it's the
       | spectrum of light humans shine the most brightly in, despite
       | being invisible to us humans it's the best sensor at the
       | electronics level for these purposes.
       | 
       | ---------
       | 
       | There really isn't much electrical complexity to the motion
       | sensor that this blogpost was trying to debug.
       | 
       | I would suggest building your own motion sensor as the next step
       | in your EE journey.
        
         | Kerbonut wrote:
         | So can LED screens be used as a camera?
        
           | immibis wrote:
           | No. Even if each LED was a good light sensor (it's not good)
           | the control circuitry is output-only. And you need a lens, or
           | else every pixel receives the light from all around it, and
           | reads just the average brightness of the room.
        
           | dragontamer wrote:
           | The "D" in LED is "Diode", commonly referring to the "P-N
           | Junction" and its capabilities.
           | 
           | A CMOS sensor is an array of thousands of photodiodes. So
           | erm... diodes are _already_ used as the basis of modern
           | digital cameras.
           | 
           | I guess building one out of LEDs (diodes designed to emit
           | light, rather than receive it) is feasible but I can't
           | imagine it'd work very well. If you build a big enough camera
           | and calculate the right lenses, it probably would work. But
           | it wouldn't surprise me if the proper size of such a camera
           | was on the order of a 20-feet by 30-foot room (with a "camera
           | sensor" the size of maybe 5-feet by 5-feet, composed of
           | thousands of LEDs acting as terrible photodiodes).
           | 
           | --------
           | 
           | A proper CMOS sensor miniturizes all of that to happen on a
           | micrometer scale, so you can shrink modern cameras down to...
           | well... the size of our phones.
           | 
           | But the principles of light, sensors, and cameras in general
           | work even with larger / inefficient objects. You just got to
           | build a "large enough" camera to compensate for all the
           | problems.
           | 
           | EDIT: And also what the other poster pointed out about the
           | control circuitry. The circuits in a typical LED Screen are
           | all "output only". There's no way for the information to come
           | back / reverse the LED Screen because the circuits are
           | already set. I'm assuming you're somehow building those
           | circuits and have embedded them into the LEDs somehow.
        
       | frankus wrote:
       | I remember a coworker telling me about a project that had
       | mysterious battery drain after shipping.
       | 
       | It turns out the microcontroller was doing read-modify-write on a
       | port that had an LED connected, and in bright sunlight the LED
       | input would be high, and then stay high after the write. It was
       | fixed with a firmware update that set the LED bit based on
       | whatever logic determined if it should be on on every write.
        
       | yonatan8070 wrote:
       | I know someone who made digital candles using the technique for
       | Hannukkah (Jewish holiday), there was a set of LEDs connected
       | like shown in the post, and you could use your a flashlight (or a
       | purpose built "shammash" LED) to turn each candle/LED on by
       | touchibg it with a light, it was quite cool
        
         | jgrahamc wrote:
         | Very cool. I like that.
        
       | anfractuosity wrote:
       | I rather like this idea - https://www.instructables.com/An-LED-
       | You-Can-Blow-Out-Like-a...
        
         | 123pie123 wrote:
         | thanks for the link - i was looking for something like this to
         | create a more realistic led candle that detects drafts and
         | makes them flicker slightly quicker
        
       | dmitrygr wrote:
       | Basically a slightly less polished version of this: [1] [2]
       | 
       | The above paper goes further implementing two way comms using
       | only a LEDs
       | 
       | [1]
       | https://www.researchgate.net/publication/221568729_Very_Low-...
       | 
       | [2]
       | https://courses.cs.washington.edu/courses/cse590u/03su/paper...
        
       | antirez wrote:
       | Other two reversible effects that are not cited in the thread:
       | 
       | 1. Peltier effect. 2. Piezoelectric effect.
       | 
       | The second one is especially useful in DYI stuff since you can
       | use a piezo speaker in order to generate a current when
       | mechanically stressed.
        
         | anfractuosity wrote:
         | Have you come across
         | https://en.wikipedia.org/wiki/Quartz_crystal_microbalance re.
         | the piezoelectric effect, you can apparently measure very small
         | masses.
         | 
         | (It sounds like you do need to apply an alternating current for
         | this though)
        
       | jIyajbe wrote:
       | The reversed-biased method is actually the basis of single-photon
       | detectors used in quantum optics experiments, especially
       | experiments with entangled photons. Here's a paper that uses
       | exactly this--reversed-biased red LEDs-- to introduce physics
       | undergrads to the essential concepts:
       | 
       | https://advlabs.aapt.org/items/detail.cfm?ID=13808
       | 
       | It includes a simple circuit that probably anyone here on HN
       | could build. (Even me!)
        
         | anfractuosity wrote:
         | Very cool, you might like this - https://research-
         | information.bris.ac.uk/ws/portalfiles/porta...
         | 
         | A single photon source from an LED. I need to read it more
         | closely, but was curious if it could be used to create a
         | quantum RNG.
        
           | jIyajbe wrote:
           | I read the paper; much of the electronics details got past me
           | on the first read, but I think that the part most relevant to
           | your question is their statement that it needs to be
           | determined if the LED is a deterministic or a probabilistic
           | single-photon light source.
        
             | anfractuosity wrote:
             | Yeah, that's a good point, I've just been looking at -
             | https://en.wikipedia.org/wiki/Single-
             | photon_source#Character... which talks a little about what
             | deterministic means with respect to a single photon source.
             | 
             | It sounds like if it's probabilistic it could also generate
             | multiple photons.
        
       | floitsch wrote:
       | I used this technique to send data from the cell-phone to an
       | ESP32 using the phone's flashlight:
       | https://www.reddit.com/r/esp32/comments/wfea4r/send_data_wit...
        
       | persnickety wrote:
       | "the LED [...] will act as a capacitor that charges when light
       | hits it."
       | 
       | Wait, what? Photodiodes are supposed to be letting (dark) current
       | through continuously when light hits them in reverse bias. Heck,
       | I even tested it empirically myself, and the light was
       | continuous.
       | 
       | On this topic, what kind of light detector is the most linear?
       | Photodiode? Phototransistor? Photoresistor? Something else?
       | 
       | I'm thinking about connecting it to a white LED to have an
       | ambient-aware light.
        
       | dfox wrote:
       | Twenty years ago (when building community wireless networks was
       | all the craze, at least here), we played with free-space optics
       | and in course of that found out that random soviet (4mm!) green
       | LED from parts bin makes exceptionally good receiver for the red
       | laser LED from cheap laser pointer (driven by bunch of paralleled
       | up HC04 gates). The contraption was not really practical, but
       | across few meters of lab bench had higher bandwidth than we could
       | measure with the surplus 50MHz CRO we had there.
        
       | mmoustafa wrote:
       | > Certainly looks like that motion sensor is turning the light on
       | in the night uselessly.
       | 
       | Have you seen the movie Parasite?
        
       | DoingIsLearning wrote:
       | > Certainly looks like that motion sensor is turning the light on
       | in the night uselessly.
       | 
       | Interesting read John but since no one brought it up you should
       | be careful to assume the sensor is at fault.
       | 
       | Hypothetically the timestamps in the example (roughly 00:00 to
       | 04:00) sound like a fine time for rodents to roam and many motion
       | sensors will also trigger on our small mass friends. :)
        
       | lolc wrote:
       | Oh that was an interesting dive into LED peculiarities. And I did
       | have an oddly behaving movement sensor too! It turned out to be
       | mice. The sensor was just very sensitive.
        
       ___________________________________________________________________
       (page generated 2024-06-20 23:01 UTC)