Boa noite pessoal, estou com um problema para controle de servos.. modifiquei 2 servos que eram de 60º para 360º (giro contínuo), eles funcionam muito bem, sentido horário e anti-horário.. só que eu preciso fazer esses motores pararem, e não consigo! alguém já passou por isso? alguma dica?

#include<Servo.h>
Servo s2;
void setup(){
s2.attach(4);
}
void loop(){
}

Vejam que "sem nada" no loop o motor já liga em um sentido e não para mais..

Agradeço desde já;

Exibições: 2680

Responder esta

Respostas a este tópico

Thiago, 

eu segui este tutorial, que ensina a calibrar tb.

http://meurobot.blogspot.com.br/

Boa Sorte

Ricardo,

Pelo que li, acho que era isso mesmo! Vou testar e informo aqui, muito obrigado.

Servo devidamente ajustado! Obrigado

bom

servos

Não achei tutorial no site que o Ricardo passou, gostaria de saber como calibrar meu servo tambem.

Luciano, usei esse código como base:

/*****************************************************************************
 * ajuste_rotacao_direcao_servos
 *
 * Ajuste dos valores de pulso máximo (max.pulse) e mínimo (min.pulse) para
 * que o servo mantenha-se parado quando for enviado o comando de 90 graus
 *
 *****************************************************************************/

#include "SoftwareServo.h"

SoftwareServo servo;
SoftwareServo servoL;

void setup(){
  servoL.attach(2); //Num. do pino (Arduino) em que o servo está conectado.
  //   Teste um servo, anote o valor do max. pulse, e depois teste o outro.
  servoL.setMaximumPulse(2800);// esse é o valor que será testado no loop.
  //   Depois de obtê-lo, coloque aqui em cima e tire o comentário.
  servoL.setMinimumPulse(480);// para um dos servos que testamos,
  //   não resolveu mexer só no max. pulse.
  //   Ficou muito baixo e, assim, a velocidade máxima era pequena.
  //   Foi necessário, então, ajustar também o min. pulse

  Serial.begin(9600);
  Serial.println("Ajuste do servo");
}

void loop(){
  for (int maxpulse=500; maxpulse!=3000; maxpulse+=10){
    servoL.setMaximumPulse(maxpulse);
    servoL.write(90);
    Serial.println(maxpulse);
    SoftwareServo::refresh();
    delay(45);
    SoftwareServo::refresh();
    delay(45);
  }
  //Depois de ter um valor aproximado, diminua o incremento do laço e
  //os valores inicial e final
  delay(500);
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço