In this project i built a, let´s call it „precision“, scale.
Resolution 0.001 Gramms, Accuracy 0.01 Gramms, 2 Hz output Data Rate
https://github.com/annem/AD7193 thanks Anne m
A very handy tool to manipulate specific bits and instant get hexadecimal / decimal values:
The ADC is hooked up in a ratiometric setup, which means that the Vref of the ADC is tied to the reference voltage of the load cell. This decreases the noise of the measurement since the ADC is comparing the „noisy“ Ain agains the same „noisy“ Vref. As you can see the noise cancels out.
Source: Transducer/Sensor Excitation and Measurement Techniques
Accuracy Issues AD7193
At the beginning of the project i had quite a hard time figuring out why my noise values are far off what is shown in the datasheet. To measure the noise i tied A1&A2 together, put the device in differential measuring mode and plotted my ADC Counts. Settings: Gain = 1, Chop Disabled, Sinc4 Filter supplyvoltage of 4.7 volts. (please dont ask why i am using 4.7 volts … =))
What finally resolved my accuracy issue was modifing the Git Libary.
registerMap &= 0x1FFFFF; //keep all bit values except Channel bits
registerMap |= 0x800000; // internal zero scale calibration
registerMap |= 0x801000; // internal zero scale calibration
seems like you may have to specify the used channel (a1,a2 in my case) to calibrate the ADC correctly.
After changing the libary my counts were much better – just slightly off the values in the Datasheet. (Next time you´ll get a better looking Gaußian – stopped the sampling to early ..)
I will update this entry if i have some spare time and provide you the code.