LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: oliveira1991 em 19 de Setembro de 2013, 20:36

Título: Servo e Arduino
Enviado por: oliveira1991 em 19 de Setembro de 2013, 20:36
Boas pessoal,

Estou aqui com um problema, eis o seguinte:
Estou a usar um ARDUINO ATMega 328, e estou a usar um servo com rotação de 360º, e a usar o seguinte codigo para o controlar abaixo, o problema esta que ele não para ele continua a fazer a rotação para os 360º, alguem pode ajudar?


Código: [Seleccione]
#include <Servo.h>

Servo servo1;

void setup()
{
  servo1.attach(3);

}

void loop()
{
servo1.write(0);
delay(2000);
servo1.write(30);
delay(2000);

}

Título: Re: Servo e Arduino
Enviado por: Samy74 em 19 de Setembro de 2013, 21:51
Provavelmente estás a usar um servo de rotação contínua.
Título: Re: Servo e Arduino
Enviado por: TigPT em 20 de Setembro de 2013, 13:10
http://arduino.cc/en/Reference/ServoWrite (http://arduino.cc/en/Reference/ServoWrite)

Segundo a documentação, para colocares o servo no meio precisas de dar o valor 90.

Se o servo é de rotação continua ele vai a 0 andar ao maximo para um lado, a 90 parar e a 180 andar ao máximo para o outro lado.

Mesmo dando o valor 90 ele pode não ficar 100% parado se tiver que ser afinado, mas se for um servo 360º de origem (não modificado por ti) deve de estar alinhado.

Nos que precisam de ser afinados, metes o valor 90, ele fica quase parado e depois com uma chave fendas num orifício que tenha para afinação rodas ligeiramente até ele parar completamente e nem fazer o barulho do pwm tipo uma vibração.