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
-
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?
#include <Servo.h>
Servo servo1;
void setup()
{
servo1.attach(3);
}
void loop()
{
servo1.write(0);
delay(2000);
servo1.write(30);
delay(2000);
}
-
Provavelmente estás a usar um servo de rotação contínua.
-
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.