I'm trying to use my arduino for reading signal from silicon photodiode. I use an AOP for the signal but my application need an ADC with 18 bits and not 12. Some of you have an idea of wich kind of ADC can I use with my arduino ?
Acronym is formed by taking the first letter of every word that make the name/title. You are saying that AOP is an acronym; how? Here, there are there letters, and we need three words with beginning letters A, O, and P. You have cited op-amp which is only one word (compound word).
It's French, so you always have to reverse the order of the words (e.g. NATO in French is OTAN). So Operational Amplifier becomes Amplifier Operational (in French words) and that's how you would get to AOP. Crazy French.
Then: why 18-bits? Isn't 16-bits enough? Your system really that stable that you can use those final bits? There are lots of cheap 16-bit ADCs out there, such as the ADS1115. Sample rates of that one are quite low, so that's another factor: what sample rate do you need?
And out of curiosity: where does the 12-bit come from? The regular Arduinos have a 10-bit ADC.
Thank all of you for your replies. Maybe I should give details on my application.
I want to do absorption spectroscopy with photodiode and pulsed laser (10 MHz or lower frequency). I deal with very weak absorption variation (delta ~0.001) and this is why i'm affraid that 16 bits will be not enough. But if it is cheap, I can try if I catch some signals variation.
To answer at groundFungus, I use an Arduino Mega, data will be stored on a computer and transfered by USB. I have only 10 to 15 points per data set.
Ho and 12 bits come from my error, I thought it was 12 instead of 10.
To actually have your LSB relevant you have to make sure your noise level is below that - in case of 18 bit resolution that's about 4 ppm. That includes electrical noise (so good filtering of the power supply and shielding), stability of your laser (variation in pulses smaller than that), and stability of the sample itself.
Then if you want to go to 10 MHz you have to deal with 30 MB/s of data (3 bytes per 18-bit data point). That's more than an Arduino can handle. Even at 1 MHz you end up at 3 MB/s.
There are 16-bit and 24-bit ADCs around, I don't know if there are also 18-bit ones. In your case you can just go for the 24-bit ones. I expect the data sheet of these components will have lots of info on how to stabilise everything.
These a lab requirements, and not possible by simply connecting some Arduino compatible modules together.
I think OP needs to look at something like this:
Thank you wvmarle for your response, it's very usefull. Did you have any idea of what amount of MB per seconde an arduino can handle ? Based on your comment, I will try 16 bits ADC. Did you think that my arduino mega can process one point each 100 ms ? I guess it depend on the frequency of the ADC, right ?
One point every 100 ms that's 10 per second. That's very little, many orders of magnitude less than what you asked for before.
An Arduino has a clock speed of 16 MHz, and a few kB of memory (depending on the model). How much data your system can handle depends on this, but also on the speed of the storage medium for the data.