can't make my servo controlled camera arm move correctly

wvmarle:
So the value goes to 180, then over 180 (presumably ignored by the servo.write() function)

Unfortunately not. When the (int) value gets over 180 it is treated as though you were trying to pass a number of microseconds to a writeMicroseconds() command rather than the plain write() you actually used.

This little trick of the servo library can cause all sorts of confusion.

Steve