//servoOneWriteArduino for the Arduino without servo sheild // Serial receives two integers separated by commas (pin and angle) // All digital pins can be used except 0 and 1 which are // used for Serial. Pins 2 through 13 are valid. // Angles are restricted to 10-170 degrees. #include Servo servoCurrent; void setup() { Serial.begin(9600); } void loop() { while (Serial.available() > 0 ) { int iPos = 10; int iDelta = 1; int iPin = Serial.parseInt(); int iAngleStrt = Serial.parseInt(); int iAngleEnd = Serial.parseInt(); int iJunk = Serial.parseInt(); if (servoCurrent.attached()) { servoCurrent.detach(); delay(25); } if ((iPin >= 2 && iPin <= 13) && (iAngleStrt >= 10 && iAngleEnd <= 170)) { servoCurrent.attach(iPin); delay(25); if (iAngleStrt < iAngleEnd) { for (iPos = iAngleStrt; iPos <= iAngleEnd; iPos += iDelta) { servoCurrent.write(iPos); delay(15); } } else { for (iPos = iAngleStrt; iPos <= iAngleEnd; iPos -= iDelta) { servoCurrent.write(iPos); delay(15); } } servoCurrent.detach(); delay(25); } } }