Ambient Room Light Intensity

The Totally Featureless Clock has been running continuously for the last few months, with a laptop dutifully recording its trace output. Occasionally the USB link will disconnect, but on the whole it works pretty well; the clock continues to run even when the USB link fails.

Here’s about three weeks of light intensity record. The red trace is the max value, green is minimum, and blue the current intensity. The min and max tend toward the middle, one count per hour, so they don’t stick at the extremes.

Light Intensity
Light Intensity

The peaks represent daylight hours, zeros are overnight, and the overall scale is roughly logarithmic, more or less, kinda-sorta.

The general idea is that the LED brightness matches the room illumination, with the min & max values tracking the actual ambient light range to get the most benefit out of the TLC5916’s limited dynamic range.

You can spot the data dropouts where the red trace steps abruptly; it should decline smoothly from each peak and the peaks should be evenly spaced about 24 hours (1440 minutes) apart. Each minute generates three lines with the exact time, so it would be possible to futz around and timestamp each record, but …

The clock dumps the ADC values in hexadecimal, which gnuplot can’t handle, so a bit of preprocessing is in order.

cat *log > 0.txt
grep Light 0.txt > 1.txt
sed 's/Light: /0x/g;s/Min=/0x/g;s/Max=/0x/g' 1.txt > 2.txt
gnuplot
set key on right center
plot "2.txt" using 1 with lines lt 3 title "Light", (and so forth)

All in all, it seems to be working as intended. When I put it inside the case, I’ll probably have to increase the resistor to account for the dark-gray faceplate.