Go Down

Topic: Problema com controle de servo RC (Read 1 time) previous topic - next topic

araripe

Olá, estou tentando controlar dois servos (modificados para movimento contínuo) com o Arduino Duemilanove, mas está acontecendo um comportamento muito estranho. Os servos estão conectados no pino 9 e 10 do arduino. Já chequei por curtos, ligações erradas, etc. Aparentemente está tudo bem conectado. O problema é que se eu instancio dois objetos servos, o segundo começa a girar mesmo que não tenha nenhum comando para ele. Por exemplo, o pequeno código abaixo faz com que o o segundo servo gire sem parar. Não estou entendendo o que está acontecendo. Será que o fato de estar usando dois servos, tenha algum macete que estou esquecendo? Observem que o comando para o segundo servo está comentado. mesmo que eu retire esta linha, o segundo servo gira direto.

#include <Servo.h>

Servo myservo1;
Servo myservo2;

int pos = 80;

void setup()
{
myservo1.attach(9);  // attaches the servo on pin 9 to the servo object
myservo2.attach(10);  // attaches the servo on pin 10 to the servo object
}

void loop()
{
  myservo1.write(pos);              // tell servo to go to position in variable 'pos'
  //myservo2.write(pos);              // tell servo to go to position in variable 'pos'
  delay(20);
}

Alguém tem alguma sugestão?
Sds.

fabio_h

olá,
qual a versão da IDE você está usando?
até a 0016 servo somente em dois pinos...
da versão 0017 em diante você pode colocar servos em qualquer pino.
experimente acionar o servo 2 e descomentar o servo1 para ver o que sucede

araripe

Resolvi o problema. De algum modo, quando eu comando a conexão do servo 2 com o pino 10 (myservo2.attach(10)), uma vez que eu não estou mandando nenhum comando para o servo ele começa a girar sem parar. A solução é inicializar o servo logo após o attach. Um simples myservo2.write(80) inicializa o servo na posição central e o mantém parado até que eu o comande posteriormente.
Obrigado.

Senso

Está a usar servos de rotação continua/livre?

Go Up