Measuring voltage and adjusting it is what electronics is all about so you won’t get far without friends like the PCF8591 ADC+DAC combo.  Analog to Digital Converters help by measuring an analog voltage and turning it into something a microcontroller like a Metro or Arduino can understand. If you’re using a single board computer like a Raspberry Pi, you might not have any other way to measure a voltage because even though they are well equipped for digital circuits, many boards of that type don’t have any pins that can measure analog voltages.

Adding a PCF8591 to your electronics project will give you not one, not two, but four 8-bit analog inputs that you can use to measure voltages from. If knobs are just the thing to complete your project, just add a PCF8591 and some potentiometers and you’re ready to twist, turn, twiddle and tweak to get things just right.

Along with four 8-bit ADC channels, the PCF8591 comes complete with an 8-bit Digital to Analog Converter converter as well! Not only can you measure voltages, but now you can create them just as you want them. You can even use the DAC and ADC together to create an input to a circuit and measure the results with the ADC. The possibilities abound! 

"Wow! you say, That sounds great, but surely with all that fun in one small package, I can only use one at a time.”

Well my friend, I’ve got good news. On the back of each PCF8591 breakout are three jumpers that allow you to set the I2C address, allowing the use of eight PCF8591s on the same I2C bus! That’s up to a a whopping 32 channels of analog measurement and 8 channels of analog signal generation! If you do decide to go all out with your project, you won’t break the bank because the PCF8591 breakouts are reasonably priced compared to some higher-end ADCs.

As if 4 ADCs and one DAC in a single package weren’t enough, we’ve made it even easier to use by mounting the PCF8591's chonky SO16 surface mount package onto a breakout with standard 0.1”/2.54mm headers and SparkFun Qwiic compatible STEMMA QT connectors for the I2C bus, making it simple to integrate with your project. Using the wiring diagrams and example code on the pages that follow, you’ll be able to use our Python and Arduino libraries to easily measure as many voltages as you need (as long as that number is 32 or less).

This guide was first published on Jul 13, 2020. It was last updated on Jul 13, 2020.
This page (Overview) was last updated on Sep 23, 2020.