In preparation for the Ann Arbor Mini Maker Faire and upcoming Make: PGH meeting, I took a look at my laser harp to figure out why many of the channels were no longer functioning correctly. My design basically consists of a set of ‘strings’, each which consists of a pointer laser aimed at a cadmium sulphide photocell. The photocell is connected in series with a fixed resistor to form a resistor divider, and the center voltage of the divider is fed into the digital input on a microcontroller. When I built the circuit, I chose a fixed resistor value such that the output voltage would be close to ground if the photocell did not have the laser shining on it, and close to the voltage rail (4v) when the laser was shining on it. This apparently came out to around 681 ohms, and I didn’t have many troubles for a couple of years. Last fall, however, a bunch of the sensors stopped working in quick succession, leaving me to think that something was up. To verify my suspicions, I measured the dark (illuminated) and light (illuminated with a laser beam) resistances of all 32 photocells:
Photocell resistance measurements
Condition | dark (ohms) | light (ohms) |
min | 16k | 414 |
max | 63k | 1153 |
avg | 24.5 | 746 |
So that is the problem- the average photocell now has too high of a resistance to ever hope to pull the reference voltage high enough to signal that the beam has been broken! The fix, then, is pretty simple. I just need to replace the 681 ohm resistors with some other value that is larger than the on resistance of the largest photocell I have. Using this data, I calculated that something on the order of 2k ohm would be a better choice, and would lead to reasonable output voltages:
Expected output voltages, using a 2k ohm reference resistor. Logic voltage is 4V
Condition | dark (V) | light (V) |
min | 0.12 | 2.54 |
max | 0.44 | 3.31 |
avg | 0.33 | 2.92 |
To verify, I swapped in 2k resistors for the first 8 sensors, and they worked as expected. I promptly ran into two more problems, thouhg- it appears that one of the input pins on my digital I/O expander is blown, and I only had for more 2K surface mount resistors! The I/O expander is an easy fix, since I have more at home, but I’m not sure how to acquire a bunch of 2k surface mount resistors in the next three days. If I can’t, I might try something crazy like sticking some of the 681 ohm ones end to end