First, I cut off the USB plug (which was surprisingly difficult – the spiral wire which creates the “backbone” of the gooseneck is very tough!) and exposed the two wires – black for ground and red for 5 volts. Then, a bit of testing with my multimeter and adjustable DC power supply showed that the LED lamp draws about 180 mA @ 5 volts (and gives a really bright, uniform light in the process!) – OK for a PC USB port, but probably a bit too much load for 5 volt line on the Arduino.
Of course, the lamp is designed to run at 5 volts, so I needed to step the voltage and current down to avoid blowing the lamp. A bit of basic maths suggests the effective load of the lamp at rated voltage is about 30 ohms, and that I would therefore need to add about 40 ohms in series to maintain a current of about 180 mA @ 12 V. I rummaged through my “box of bits”, and found a 100 ohm resistor, and the maths suggests the lamp should draw about 95 mA when run in series with the 100 ohm resistor @ 12 volts.
So ... how does it work?