I wanted a board that shows the state of all I/O pins on LEDs with all of these properties….
Works for Digital Input, Output, and Input Pullup
Pushbutton to drive the pin high, very weak pulldown (much weaker than on-chip pullup)
Works for analog pins (thumbwheel pot), but also works when the same pin is used for digital
LED shows actual analog level – LED current should be linear to actual voltage
LED current does not interfere with analog voltage
LED does not interfere with weak signals, or input pullup or pulldown
Inexpensive – under $0.50 per pin – many parts are ok, as long as they’re cheap!
I realize this is probably excessive design for most people, but when you’re making a development board and testing nearly every major Arduino library, it’s amazing how handy tools like this can be. So I thought I’d document this little circuit, and especially the 150K feedback resistor trick that makes it work so well with these higher impedances and the chip LMV358 opamp.