Here's another version, with the servo numbers lining up with the pin numbers
// zoomkat 12-13-11 serial servo (2) test
// for writeMicroseconds, use a value like 1500
// for IDE 1.0
// Powering a servo from the arduino usually DOES NOT WORK.
// two servo setup with two servo commands
// send eight character string like 15001500 or 14501550
// use serial monitor to test
#include <Servo.h>
String readString, servoname, servo2;
Servo mys[18]; //Now we have 18 servos
void setup() {
Serial.begin(9600);
for(int i=2; i<18; i++)
{
mys[i].attach(i); // was i+2
}
Serial.println("two-servo-test-1.0"); // so I can keep track of what is loaded
}
void loop() {
while (Serial.available()) {
delay(3); //delay to allow buffer to fill
if (Serial.available() >0) {
char c = Serial.read(); //gets one byte from serial buffer
readString += c; //makes the string readString
}
}
if (readString.length() >0) {
Serial.println(readString); //see what was received
// expect a string like 07180 containing the servo position and degrees
servoname = readString.substring(0, 2); //get the first two characters name
servo2 = readString.substring(2, 5); //get the next three characters
Serial.println(servoname); //print to serial monitor to see parsed results
Serial.println(servo2);
int n1 = servoname.toInt();
int n2 = servo2.toInt();
Serial.println("the numbers are :");
Serial.println(n1); //print to serial monitor to see number results
Serial.println(n2);
mys[n1].write(n2); //set servo position
readString="";
}
}