The add on card is cool but you could use a voltage regulator that is cheap and simple.
A voltage regulator, depending on the model expects an voltage input of whatever it was designed to handle and will output the desired voltage on the output pin. In your case you want to sense 5volts but read 3volts which is safe for the Pi.
You can find ample supplies on ebay but here is a Sparkfun link to an example.
If the external device provides any current upto 10vDC then the output pin gives 3V (HIGH ON DIGITAL PIN) and you can safely read that using GPIO in python or whatever you want.
You can find them dirt cheap if you look around. You just HAVE TO MAKE SURE the output is not more than 3.3volts which is connected to your Raspberry. You could put a resistor on the output to drop the voltage a bit.. but regulators are designed to be 99.9% accurate on output.
The Raspberry Pi uses a NCP1117 3.3Volt to Drive the 3V3 power bus which gets it power from the 5V0 bus which comes from your USB power supple.
Voltage regulators are used to supply power to other devices. In this case I just used imagination to use a cheap solution and used it the other way around.
Because end of the day we just need to sense a voltage as a digital signal. It does not really matter what you use to generate it. It could be a 3.3v battery, 3.3v dc power supplyy, a buffered digital output from an Arduino, another Raspberry, a signal generator, a 555 timer, or a simple voltage regulator. It the implementation and goal that is important.
- End of the day ...
- 3.3v = 1
- 0v = 0
References:
Maximum voltage on GPIO
Maximum Current on GPIO