I want to send a very small amount of data to an Arduino via visible light ( blinking lights on a screen ). The data is no more than settings and the rate does not have to be fast. Does anyone have a method for doing this?


I can't yet make a comment, too much a newbie yet, so am submitting this as an answer.

I have been using this Instructable as my entry point into All Things Arduino and there is src code you may be able to use.


This uses an ATTiny to detect and record changes in a photoresistor, and use the result to play back the same flash sequence that was received.

Other than the pin mapping being different, and lack of reliance on higher-level Arduino core functions : ) it could be useful to you.

the big thing I see is that we and you may not know the delta in resistance a photoresistor might see from your screen flash. However, the src available from the link does contain a configurable delta in measured resistance (so even a dim flash could work, if you change the threshold in the code).

There are also code snips in the comments that help measure the "background" light level, before enabling the sensor to "record". This could be useful for low- or high- background light levels as you may find in a lit (or poorly lit) room.

Not the answer you're looking for? Browse other questions tagged or ask your own question.