Max beam deflection using Arduino with Acceleromter

Hello everyone,

I am doing a project for University.

Basically I want to program the Arduino Board with an Accelerometer on it, then locate it at the free end of a cantilever beam.

Then, I will move downward the Arduino with my hand.

My outcome is, I want the Arduino to tell me (by a red LED on a bread board) when I reach the maximum displacement that the cantilever beam can withstand.

I know how to find the maximum displacement.

My question now is: how can I read the distance travelled by the arduino, while it measures the acceleration?

Thanks a lot :)

Do you really need to know the distance traveled, or do you just need to know the angle that the Arduino is forming with the ground?

The second one is a lot easier to measure than the first!

-- The Arduino Drum Machine: 14-track MIDI drum machine sequencer / groove-box

Hi, thanks for your reply.

Actually I thought about that too and I think it would work, because I can put my equation in terms of the maximum slope of the cantilever, which is the same angle that the Arduino forms with the ground, which is the same angle as the slope.

So, how would you do that?


The accelerometer (assuming it's the 3-axis type, though you really only need 2 axes) will give you acceleration in X and Z axes. When parallel to the ground, Z axis acceleration is -1g (gravity vector) and X/Y should both be 0 (you'll have to calibrate this out). Under deflection, Z acceleration will go towards 0 and X (or Y, depending on how you have it positioned) acceleration will increase. The magnitude of the two non-zero vectors will still add up to 1 (since gravity is still the only acceleration force in steady state) but the relative magnitudes of the two will give you a direction angle, using trigonometry you probably learned in freshman algebra ;)

-- The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons

Small angles aren't easy to measure with a MEMS accelerometer due to the high S/N ratio. Depends how much the cantilever moves (and whether its supported at both ends!)

If the displacement is relatively quick you could try double-integration of the acceleration signal (after having compensated/tared for gravity). However integrating a noisy signal leads to drift and double integration leads to accelerating drift - hence the requirement for fairly quick displacement.

Too rapid a displacement and you may be bitten by bandwidth issues. Too slow a displacement and this is not a workable option - a linear displacement sensor would then be necessary.

Wow, this is going to be too complicated for my present knowledge.

Do you know where can I get some ideas of project/experiments with Arduino with an accelerometer?

Seriously, there are a LOT of projects out there. Are you just looking to replicate one of them?

To return to your original problem, how much of a deflection are you expecting to have to measure?

-- The Aussie Shield: breakout all 28 pins to quick-connect terminals

So many of 'em!!!

The point is, I wanted to stick with my idea but I though it was going to be pretty smooth, but I guess not anymore.

Time is not enough and have so much other stuff to do (finals time , so stressed), plus what they taught in class for arduino is not enough. So yes, I might want to reproduce one of those experiments, If I find a decent one.

I just wanted to do something with my accelerometer. If you have any suggestions, please tell me.

Well, I was expecting something like 5 cm of displacement.