I´m trying to interface a geophone with a Arduino, also i wish to connect the geophone to a ADC.
-The geophone has two pins (+ -)
-Coil resistance 395ohm
Geophone->Arduino
I wish to connect the geophone directly to the Arduino without any kind of amplification..how can i connect it to the Arduino analog pins? Connecting like a thermistor?
Geophone->ADC
Also i´m working with a ADS1211 24bit ADC, each channel has a "Inverting Input Pin" and a "NonInverting Input Pin"..but all schematics that i found using ADC involves amplification, so i´m a bit lost.
A geophone is a device which converts ground movement (displacement) into voltage, which may be recorded at a recording station. The deviation of this measured voltage from the base line is called the seismic response and is analyzed for structure of the earth.
Its used for seismic or geological monitoring/study (mining)..its really very sensitive. They have a natural frequency of (1Hz or 4.5Hz or 10Hz, etc).. my geophone doesnt hava a datasheet..but this one has almost the same specifications: http://www.geophone.com/techpapers/SM-24%20ST%20Brochure.pdf
I don't know what the maximum voltage out you expect is. It looks like it can produce quite a spike if accidentally struck. You might want to put a Zener or some sort of voltage suppression diode across it to protect the ADC. On the other hand, that ADC has such a large dynamic range you could just us an appropriate voltage divider. I don't think you need to worry about an amplifier.
It has one parameter, sensitivity = 28.8 V/m/s. Even the value looks big, I don't think this device operates in m/s scale ( correct me, if I'm mistaken ), it should be around 10^3 times less, millimeter per second.
It would mean few mV signal, and hardware configuration 'd depends on what arduino board do you have.
Uno doesn't have amplifier, you would need external OPA. Probably same with other boards, as internal OPA is only x200 gain. Second problem, low resolution 10-bit arduino ADC, which brings low dynamic range. You can improve it by making logarithmic amplifier, but anyway it would be far away compare to 24 - bit external ADC.
The geophone is basically an accelerometer, it looks like. That's why I commented that bumping it might cause the output to go pretty high. On the other hand, the bandwidth is pretty low, so that may not be a problem.
OP has a 24-bit ADC. Lets say the input was 30V scaled to 2.5 to protect the ADC. That still gives the equivalent of 1.7 µV resolution. Consider a 2.5V reference and only 30mV full scale input to a 24-bit ADC that still gives you 19-bit resolution. I think the external ADC will be plenty for the job.
Geophone->Arduino
I wish to connect the geophone directly to the Arduino without any kind of amplification..how can i connect it to the Arduino analog pins? Connecting like a thermistor?
In post above I was trying to say that direct connection to arduino is not appropriate, except application where geophone capture vibration from nearby rail road station / community train. But it possible, you need two resistor to create a DC bias, and an electrolytic cap.
Geophone->ADC
Also i´m working with a ADS1211 24bit ADC, each channel has a "Inverting Input Pin" and a "NonInverting Input Pin"..but all schematics that i found using ADC involves amplification, so i´m a bit lost.
This will work, use figure #12 in datasheet for ADC.
OP has a 24-bit ADC. Lets say the input was 30V scaled to 2.5 to protect the ADC. That still gives the equivalent of 1.7 µV resolution. Consider a 2.5V reference and only 30mV full scale input to a 24-bit ADC that still gives you 19-bit resolution.
Have to confess, I'm lost in this math, as we are dealing with AC and there is "effective resolution" show up. In table III it is 20 and depends on G and Turbo goes down to 19 for bitrate 50 (by the way, what is frequency range required, as 10 Hz probably, just low end?)
Like a lot of devices like the 2411, the accuracy is less than the resolution. It's still plenty good and it does include a PGA in case OP needs some amplification.
Apparently, 8.8 E-03 m/sec is a typical high velocity and the bandwidth is limited to the spurious frequency which in this case is 240 Hz. If I got the decimal point right, maybe 0.25 volts maximum signal.
Geophone->Arduino
I wish to connect the geophone directly to the Arduino without any kind of amplification..how can i connect it to the Arduino analog pins? Connecting like a thermistor?
In post above I was trying to say that direct connection to arduino is not appropriate, except application where geophone capture vibration from nearby rail road station / community train. But it possible, you need two resistor to create a DC bias, and an electrolytic cap.
Geophone->ADC
Also i´m working with a ADS1211 24bit ADC, each channel has a "Inverting Input Pin" and a "NonInverting Input Pin"..but all schematics that i found using ADC involves amplification, so i´m a bit lost.
This will work, use figure #12 in datasheet for ADC.
Thanks for the answer
So from what i understand using the geophone directly to the arduino with no amplification, wont give any good results..because the singal is too small, correct?
But since i already have the ADS1211 ADC, i will go directly to the external ADC.
On Figure12 of the datasheet
-All i need is to replace the "+-10V" from AinP/N with the geophone pins? No need to GND or VCC?
-The resistors values need to be changed? The geophone has a coil resistance of 395ohm +-10%..
-The ADC has inbuilt gain amplifier (up to 16), should i use the max?
The idea is to record earthquakes, earthquakes have a frequency of 0.00001 to xxHz, lower is the natural frequency of the geophone (1Hz geophone should be perfect, but its way more expensive), more capable is to record earthquakes. I also have 4.5Hz geophones, but since the 10Hz its more cheaper than the 10Hz..this one will be my "guinea pig". Its possible to recover lower frequencies from the geophone using filters, but i will add those later.
Just observe the differences between the pin names on your ADS1211 from the ADS1210 in figure 12 and you should be fine. The input impedance of the device is high enough that the 3K resistors will not affect your signal and the device has its own input bias source. Give it a go!
EmilyJane:
Just observe the differences between the pin names on your ADS1211 from the ADS1210 in figure 12 and you should be fine. The input impedance of the device is high enough that the 3K resistors will not affect your signal and the device has its own input bias source. Give it a go!
Thanks for the help..i think its working
I didint get 3k resistors, i´m testing with 3.3k. The ADS1211 is mounted in a breadboard (following the figure 12) with a lot of wires wondering around (dont have jumpers), so i dont expect low noise with a good resolution (first learn/understand on breadboard, later move to PCB). I´m using the ADS1213 Library from Murdock (which i appreciate the help he gave me on the connections/code)
That looks good! I don't think the 3K3 resistor makes any difference. I'd have to study the datasheet a little more about the filter to give any kind of relevant answer. I'd try a simple low pass filter first and note the results.
I realize this is an old thread at this point and I hope some are still following it as I have a question about interfacing with an ADS1211. After reading through several posts including this one, I am trying to use the library Murdock posted (http://arduino.cc/forum/index.php/topic,53063.30.html) on Apr 19, 2011 (ADS1213) to log data from a geophone. I've read through the spec sheet for the ADS1211 several times and think I have a beginners handle on how it works.
I followed the wiring diagram from the Murdock's post referenced above along with nadabro's on this thread, including using the arduino's internal timer but all I get out is a bunch of 0's. Is there anyhting that I might be missing? I would like to use the internal clock instead of an external crystal if possible but if that is my problem please let me know.
I'm sure you need more information to help me so please let me know what you need. Right now my code is the example code for switching channels in the ADS1213 library (I like to start with the examples until I understand them enough to change them for my needs). Thanks for any help you can provide.