How do I use Servo.read() to read the angle of the servo, add or subtract the angle value, and use Servo.write() to move the servo to the new angle value? Using the Serial Monitor, I enter 10. Servo.read() is supposed to return 90. I add 10 to 90. Servo.write() is supposed to move the servo to 100 degrees. How can I fix the problem?

How do I use Servo.read() to read the angle of the servo, add or subtract the angle value, and use Servo.write() to move the servo to the new angle value? Using the Serial Monitor, I enter 10. Servo.read() is supposed to return 90. I add 10 to 90. Servo.write() is supposed to move the servo to 100 degrees. How can I fix the problem?

You can't. The function name is somewhat misleading. What Servo.read returns is the last position value you sent to the servo with a Servo.write command. There is no way to 'read' what position a servo is presently at as there is no electrical feedback signal coming from the servo back to the arduino. When you send a position value to the servo you can have no idea where it's at as it moves, or indeed even when it's reached that position and stopped, that information is simply unavailable to the common man or to the arduino.

Assuming that the servo can actually get to the commanded position, servo.read() can tell you where the servo is. Adding to or subtracting from that value to get a new position is easy.

Quote

How can I fix the problem?

The first step is admitting that you have a problem. What problem do you have?

Again I state that servo.read just returns what value you last used with a servo.write command, and it's an assumption that the servo has actually reached that value as the element of time and servo speed (loaded or unloaded) is not accounted for.

Assuming that the servo can actually get to the commanded position, servo.read() can tell you where the servo is.

You can get the same thing when a servo is not even connected to the arduino. Spooky!

Not spooky at all. The arduino can't detect (how would it know with no electrical feedback from the servo?) if something is actually wired to one of it's output pins or not, and the read command just reads the value you sent to the servo library on the last write command.

You can write and run a blink program but if there is no led wired to the pin then nothing happens, but that's not spooky, why is a servo no hooked up 'spooky'?

Look at the Fine-Tune code. If I use leftfoot.read() and it returns "90". If I enter "-15a,", the code could add/subtract inputed values to/from leftfootvalue. The new leftfootvalue would be 75 and use leftfoot.write() to set the servo at 75 degrees from 90 degrees.