Grove I2C 12-bit ADC on arduino

For anyone who tried this. Does it quadruple the output value when used with Arduino, e.g. from 0-1023 to 0-4092?

I have this sound sensor from DFRobot, outputting 0-512. The output is still 0-512. I was expecting it to be 0-2048. Any reason why it didn’t translate? Thanks


Please read more about this ADC here. This Grove uses ADC121C021 which is a 12bit ADC Serial ADC(0 - 4095). The example code in wiki provides a way to make a 12bit meaurment. ADC121C021 data-sheet can provide more information about the capabilities.


@Viswa, thanks for the advice. I did test the codes and it looks promising. Am still not getting 0-4096 though but definitely the results are different than before. I will continue to test and find out more how the interaction is between the DFR sensor, this ADC and the Uno. Cheers,

The code uses 3.0V as voltage reference (ADC reference provided by circuit in Grove). The output value from ADC depends on the input range. Check if the sensor output can go upto 3V.


Edit:Reference voltage source

I have to get to someone with a more sensitive or granular scale voltmeter, or an oscilloscope. But will do check.

May I ask why in the process of converting back the getData value to volts the code multiplies the ref. voltage by 2 before dividing by 4096?


Please give me some time. There is some issue in measurement. When I connect VA (i.e reference voltage) to ADC input, the value does not go to 4096. It is at 2048.