hi there
i am using this code which has 2 servos on digital pins 9, 10. i found this code from another post in the arduino forums
code is
#include <Servo.h>
Servo servo1; Servo servo2;
void setup() {
servo1.attach(9);
servo2.attach(10);
Serial.begin(19200);
Serial.println("Ready");
}
void loop() {
static int v = 0;
if ( Serial.available()) {
char ch = Serial.read();
switch(ch) {
case '0'...'9':
v = v * 10 + ch - '0';
break;
case 's':
servo1.write(v);
v = 0;
break;
case 'w':
servo2.write(v);
v = 0;
break;
case 'd':
servo2.detach();
break;
case 'a':
servo2.attach(10);
break;
}
}
}
and my processing code which i found on
http://www.arduino.cc/playground/Learning/SingleServoExampleis
/**
* Servocontrol (derived from processing Mouse 1D example.)
*
* Updated 24 November 2007
*/
// Use the included processing code serial library
import processing.serial.*;
int gx = 15;
int gy = 35;
int spos=90;
float leftColor = 0.0;
float rightColor = 0.0;
Serial port; // The serial port
void setup()
{
size(720, 720);
colorMode(RGB, 1.0);
noStroke();
rectMode(CENTER);
frameRate(100);
println(Serial.list()); // List COM-ports
//select second com-port from the list
port = new Serial(this, Serial.list()[1], 19200);
}
void draw()
{
background(0.0);
update(mouseX);
fill(mouseX/4);
rect(150, 320, gx*2, gx*2);
fill(180 - (mouseX/4));
rect(450, 320, gy*2, gy*2);
}
void update(int x)
{
//Calculate servo postion from mouseX
spos= x/4;
//Output the servo position ( from 0 to 180)
port.write("s"+spos);
// Just some graphics
leftColor = -0.002 * x/2 + 0.06;
rightColor = 0.002 * x/2 + 0.06;
gx = x/2;
gy = 100-x/2;
}
now the problem is that only the servo on pin 9 works. the servo on pin 10 does not move at all.
i have also checked my connections by attaching the 2nd servo on pin 10 to pin 9 to see if the connections are wrong and it worked.
could you please help me get both servos working??
many thanks in advance!
M.