I'm using a 24 bit ADC TM7709 module (the same type mentioned in this post http://forum.arduino.cc/index.php?topic=248425.0 ) and set of 4 strain gauges to measure the load on metal beam.
So far everything is working fine. My only problem is that the ADC module takes about 100ms to return a reading, so I get an update frequency of about 10Hz - about 10 samples per second.
I'd like to get 20 or 30 samples per second, I don't think I can actually make the existing ADC any faster, but is there anything stopping me connecting multiple ADCs to the same set of strain gauges and reading the results from each ADC in turn - can I alternately poll and read the ADCs in sequence to get more samples? or in other words, can I poll the first ADC whilst reading the second ADC, and then poll the second ADC whilst reading the first?
You need to post a link to the datasheet for the ADC. And please not Reply #3 in the other Thread.
You need to post a link to the datasheet for the ADC
Ok, seems like that particular ADC is now obsolete. I'm going to need to start from scratch.
Does the particular ADC I use make a difference? I had assumed (perhaps wrongly) that all ADC's would be high impedance and therefore I could connect several ADCs to the same signal without effecting the signal itself - or in other words I could connect more than one ADC to the same Wheatstone bridge arrangement of strain gauges without effecting the result obtained?
To answer the question in your topic a proper datasheet is neccessary.
Sampling a signal shared between more than one (many) ADC in an interleaved fashion should work also.
There will be an influence on the measured signal, but I doubt it will be bad.
You could just try it (if you have the hardware).
Will getting the values faster really help you?
Is the timing of your 'slow' result affected by physical properties like scale settling time or the like?
If you truly need 24 bit resolution for your application, preventing cross talk between the devices and losing effective number of bits strikes me as being very difficult. If you don't need 24 bit resolution, then you can probably find a faster single device and avoid having to interleave multiple converters. If you are using a 24 bit device to get resolution, but only using a small portion of the input range then you probably want to consider level shifting so that a faster lower resolution device is applicable.
I'm going to guess the ADC is not the problem...
i.e. If you are sending data to the serial monitor, that's likely slowing things down.
Earlier I missed the piece about multiple ADCs.
I have an ADC (admittedly only 8 bits) that can do 40 million samples per second. There is no need for multiple ADCs. Just choose a suitable device.
Will getting the values faster really help you?
The application is a strain gauge on a pedal-powered vehicle (torque and revs can be used to calculate power output). The actual input power varies continuously throughout each 360 degree rotation (because legs don't deliver power evenly)
The current version works ok, but I though that having more samples will improve data quality.
The currently achieved frequency of about 10 samples per second matches (if my memory serves) what was written in the datasheet, so I don't think it's down to any coding issues.
If you truly need 24 bit resolution for your application,
I think I do, a wheatstone-bridge arrangement of strain gauges produces a minuscule change in voltage, so needs to be measured accurately. I have tried a 16 bit version and that wasn't good enough.
I'm beginning to think I should be satisfied with an application that works OK rather than spending a lot of time making something that might be only slightly better.
BTW the reason I went for 24 bit is that I don't have any analogue amplifier in the wheatstone bridge circuit (analogue electronics makes me come out in a rash) so to compensate I've gone for a 24 bit ADC to allow me to measure the tiny output voltage with greater precision than a 16 bit ADC.
The currently achieved frequency of about 10 samples per second matches (if my memory serves) what was written in the datasheet, so I don’t think it’s down to any coding issues.
Do you have a link to the datasheet? I couldn’t find one in English. I’m having a very hard time believing that any ADC or DAC is THAT S-L-O-W!!!
There are LOTS of audio DACs/ADCs that work at 24-bits/96kHz. Almost ANY cheap audio DAC can work at the CD sample rate of 44.1kHz, although the cheapest ones are 16-bits.
BTW the reason I went for 24 bit is that I don’t have any analogue amplifier in the wheatstone bridge circuit (analogue electronics makes me come out in a rash) so to compensate I’ve gone for a 24 bit ADC to allow me to measure the tiny output voltage with greater precision than a 16 bit ADC.
You might be able to get the same results by lowering the ADC reference voltage. (VREF on the Arduino is not rated for less than 1V, so the minimum reading/resolution is 1mV and I assume that’s not sensitive enough.) …But, I’ve never heard of using a strain gauge without an amplifier. Most DAC & ADC chips operate somewhere around the 1V to 5V range so there is usually some amplification or attenuation if you’re not already in that range.
Do you have a link to the datasheet?
Unfortunately I can't find the datasheet either.
I'm having a very hard time believing that any ADC or DAC is THAT S-L-O-W!!!
I have managed to find a quote from the datasheet in this thread http://forum.arduino.cc/index.php?topic=200783.0
It took some hunting through it, but finally I found this statement:
When the system clock is 5M Hz, AD data updating rate f AD is 10.17Hz.
The internal oscillator is 5MHz, so you have about 10Hz sample rate. Also, the communication protocol isn't wonderfully efficient, so it takes time to do the transfer. If you weren't reading the data you'd be able to react at the full 10Hz, but there's going to be missed samples as the communication time overlaps with available samples, so 8-9 samples per second is about right, yes.
Google "24 bit ADC" - there is no shortage of devices.