Hello,
I’m trying to control a high voltage servo (GWS IQ-910BB) through the Micro Serial 8 Servo Controller and Arduino UNO. The problem is that it starts to vibrate quite heavily after sending it a signal. I also used another (brand new) high voltage servo (GWS IQ-930BB) but it acted in the same manner. I use the following code for that:
// Arduino pin connected to Pololu Servo Controller
const int servoController = 1;
// location of Servo plugged into Pololu Servo Controller (defaults 0-7)
const int servo4 = 7; //left servo (from front)
void setup() {
Serial.begin(9600);
servoSetSpeed(servo4,5);
//Move all servo's to central position to avoid fast movements at startup
delay(1000);
servoMove(servo4,3000);
//Start movement
delay(4000);
servoMove(servo4,1000);
//Move all servo's to central position to avoid fast movements at startup
delay(4000);
servoMove(servo4,3000);
}
void loop() {
}
/*
Move Servo using Pololu Servo Controller
servo = servo number (default 0-7)
hornPos = position (500-5500) {Test your servos maximum positions}
*/
void servoMove(int servo, int pos)
{
if( pos > 5500 || pos < 500 ) return;
// Build a Pololu Protocol Command Sequence
char cmd[6];
cmd[0] = 0x80; // start byte
cmd[1] = 0x01; // device id
cmd[2] = 0x04; // command number
cmd[3] = servo; //servo number
cmd[4] = lowByte(pos >> 7); // lower byte
cmd[5] = lowByte(pos & 0x7f); // upper byte
// Send the command to the Pololu Servo Controller
for ( int i = 0; i < 6; i++ ){
Serial.write(cmd[i]);
}
}
/*
* Set Servo Speed using Pololu Servo Controller
* servo = servo number (default 0-7)
* speed = (1-127) (slowest - fastest) 0 to disable speed control
*/
void servoSetSpeed(int servo, int speed){
// Build a Pololu Protocol Command Sequence
char cmd[5];
cmd[0] = 0x80; // start byte
cmd[1] = 0x01; // device id
cmd[2] = 0x01; // command number
cmd[3] = lowByte(servo); // servo number
cmd[4] = lowByte(speed); // speed
// Send the command to the Pololu Servo Controller
for ( int i = 0; i < 5; i++ ){
Serial.write(cmd[i]);
}
}
The following youtube link shows the behavior: https://www.youtube.com/watch?v=xJnJDVqMuu8&feature=youtu.be
I tried several pulse widths varying between 500 and 3000 us but same results. I use a DC power supply at 6V and the max. current the supply can deliver is 3A. For the test I only controlled the high voltage servo. For normal servo’s everything works fine and the high voltage servo is connected in the same way. For the normal servo operation see the following youtube link: https://www.youtube.com/watch?v=I7Xno6KywYY&feature=youtu.be
I have no idea what the problem could be. The current reading at the power supply is switching between 0.2 and 2 amps all the time. I’m afraid to demolish the servo. Could it be that the relatively thin wires are a problem? Or should I use another servo controller than the MS8SC? I can’t find any information from GWS. Is anybody else using high voltage servo’s on the pololu servo controllers?
Thanks in advance,
Glen