UKHeliBob:
The page that you link to saysThe regular value without movement is above 1021, upon detecting it, it goes low to 17 - 18.
so your test for greater than 1000 is a bit too close for my liking. What sort of values do you get for alarmValue using your program ?
Sounds like some idiot using a digital sensor like an analog sensor to me. Use digitalRead(). Get HIGH when there is no movement; get LOW when there is.