Have a look at this thread from yesterday. It seems to need some work still, but should be adaptable to use a Hall sensor.

It will give you the rpm, which you can convert to speed. Then the difference between two successive speed measurements, and the time between them, will let you get the deceleration....

It will give you the rpm, which you can convert to speed. Then the difference between two successive speed measurements, and the time between them, will let you get the deceleration....

Thank you for the reference. I am having a bit of trouble making sense of all of the programming and lingo that is taking place on that forum, but it will be useful, I'm sure! This is the programming I came up with when I was thinking of using a reed sensor. I have not completed it because I simply got lost and was not sure what to do next... Maybe you have some advice?

Code:

//calculations

//tire radius ~ 7 inches

//circumference = 2*pi*r=~43.6 inches

//max speed of 5mph=~88inches/second

//max rps=~2

#define reed A0//pin connected to reed sensor

//storage variables

int reedVal;

long timer;// time between one full rotation

float mph;

float radius = 7;// tire radius (in inches)

float circumference;

int maxReedCounter = 100;//min time of one rotation (for debouncing)

int reedCounter;

void setup(){

reedCounter = maxReedCounter;

circumference = 2*3.14*radius

pinMode(reed, INPUT);

//tire radius ~ 7 inches

//circumference = 2*pi*r=~43.6 inches

//max speed of 5mph=~88inches/second

//max rps=~2

#define reed A0//pin connected to reed sensor

//storage variables

int reedVal;

long timer;// time between one full rotation

float mph;

float radius = 7;// tire radius (in inches)

float circumference;

int maxReedCounter = 100;//min time of one rotation (for debouncing)

int reedCounter;

void setup(){

reedCounter = maxReedCounter;

circumference = 2*3.14*radius

pinMode(reed, INPUT);