Trouble with values from single axis accelerometer

I have an ADXL193 250G single axis accelerometer connected to a 2560.

I'm running a simple program to display the output to serial. I get a value between 504-508 as I move it, if I leave it still it settles on 1 number (506 for example).

I have 5V going to VDD and OUT is connected to an analog port (tried 3 different ports).

If I connect a voltmeter to GND and OUT I get values that bounce between 0 and 2.5V. That should result in a reading from the Arduino between 0 and the 500s I see.

The program is fine because when I connect a pressure sensor to it and squeeze it I see values between 0 and 1024 like I would expect. I've tried 2 different ADXL193s, so I don't think that's the problem.

Ideas?

I have an ADXL193 250G single axis accelerometer

This means you have +- 250G for the full range from 0..1023 meaning 1G == delta of 2

You get a value between 504 and 508, which could mean you are shaking it with approx 1G or it might be just noise....

  1. did you connect all GND's in the system as a reference.

  2. Did you try "to hit the sensor with a hammer", it should get read higher G forces. Mind you a rollercoaster has a max of 4G and at 10G a trained pilot looses his consciousness. I become quite curious what kind of process you want to monitor (hurricanes?).

  3. The Arduino takes time to measure, approx 10K samples per second meaning 0.1 ms for a sample. Some physics.
    To get 250G for 0.1 ms an object would need to increase its speed by v=a.t
    a = 250 G ~ 2500 m/s^2
    t = 1e-4
    ==> v = 2500 . 1e-4 = 0.25m/sec and that in 1e-4 second...

thinking in cars: 250G accelerates from 0..100km/hour in just 12 milliseconds.

I assume that you need special ADC's to read these peak accelerations, do you have a link to the datasheet?

What's odd is that when I connect a voltmeter to it and move it around I do get voltage values that jump all around as expected but not when the Arduino is reading it.

I think you're right though. When I taped it to a board and slammed it down the values did drop down into the 400s.

It's going in the head of a robot that will be measuring the force of a punch. A concussion is around 95 G's, will be interesting to see what readings I get when I get it setup. The Arduino is also driving an LCD screen, pressure sensors, ethernet and 3 motor drivers.

Your voltmeter might have a better ADC and peak detector than the timing of the Arduino. Don't know., what type of voltmeter do you have?