On a early version of the system I'm working on, an Arduino Mega was being used to read some analogue values using its ADC. Something critical to the application was for the ports to be always in high impedance state, except at the moment of measurement, when they would be changed to low impedance. Once the measurement was done they would be set back to high impedance. This was done by changing the mode of the Arduino port (output for high impedance, input for low impedance). This method was being used to sample the small voltage that apears on the terminals of an LED when light shines on it. The small charge that gathers (thanks to high impedance) sinks into the ADC when the port is set to low impedance, and this allows for a measurement.

The system has now moved on and I need to do the same readings as before but now using a Beaglebone Black (BBB). The BBB has a built in 12-bit ADC. Is there a way to toggle the BBB ADC ports to high/low impedance?

  • 1
    \$\begingroup\$ What does the data sheet say? \$\endgroup\$
    – Andy aka
    Apr 14, 2016 at 9:38
  • \$\begingroup\$ I have not found anything about this matter onn the datasheet/reference manual \$\endgroup\$
    – AmiguelS
    Apr 14, 2016 at 9:56
  • \$\begingroup\$ You may need an external FET switch if the ADC doesn't support that mode of operation. \$\endgroup\$ Apr 14, 2016 at 10:40
  • \$\begingroup\$ And connect them in series with the LEDs? Would a BJT work? \$\endgroup\$
    – AmiguelS
    Apr 14, 2016 at 10:52
  • \$\begingroup\$ What speaks against an opamp configured as voltage follower between LED and ADC? \$\endgroup\$
    – Grebu
    Apr 14, 2016 at 11:28

1 Answer 1


You have two options:

  1. Use high impedance and low drift OP AMP

  2. Use MOSFET switch to disconnect LED from ADC input

The feasibility of each approach depends on your timing requirements, actual voltages to measure etc. You have to tell us more about your task to get reasonable answer.

Both methods require medium price (several USD) components to work properly, you can not do on cheap garbage once. I do not see any option to use BJT.

For the first method, you can use OPA365 (TI, 5V supply) or AD8655 (also 5V).

For the second method, I strongly advise using CMOS switch ICs. ADG721 (.2, .3) are very good. You have to connect negative pin of your LED to GND and to connect "channel" of the switch between positive pin of the LED and ADC input.

However, I do not understand why not to use more common solutions like Light Sensitive Diode and transconductance amplifier.

I can provide more information if you are interested. Pls answer my questions.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.