Como utilizar um Joystick com retorno ao centro como posicionador de servo?

Boa noite, estou tentando usar um  potenciometro joystick com dois eixos, esse joystick retorna ao centro por mola. Preciso controlar o posição de um servo, o problema é que o retorno da mola do joystick sempre levara o servo para a posição inicial.

Se alguem conhecer uma maneira de resolver isso pela programação ficarei muito grato.

Obrigado

Rodrigo

Exibições: 826

Responder esta

Respostas a este tópico

Bom, o ideal seria você usar um dos botões, para indicar que o motor deve ou não acompanhar o movimento do joystick, ou através de algum tipo de intervalo, do tipo, se de +100 for para 0 em menos de alguns millésimos de segundos, ignorar o comando.

Boa noite. Estou trabalhando em um projeto em que tenho esta mesma necessidade de controle do servo. Há alguns dias fiquei pensando em uma forma de sanar esta dúvida e hoje tirei um tempinho para tentar. No meu caso, uso um controle de PlayStation 2 com dois analog sticks (que devem ser mais ou menos como o que você utiliza) e com ele o código funcionou perfeitamente. Escrevi o seguinte código para utilizar com potênciometro (joystick normal, não o do PlayStation) e espero que funcione. Me dê um retorno se funcionou ou não.

 

// by Mech-Dickel

#include <Servo.h> 

 

Servo myservo;  

int potpin = 0;

int val;

float b = 1;  

void setup()

{  

myservo.attach(2);    

b = 90;

}  

 

void loop()

{  

val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)       

if (val >= 562)       

{       

b-=0.7;       

}               

 

if (val <= 461)       

{       

b+=0.7;       

}

if (b > 170) b=170;

if (b < 10) b=10;

myservo.write(b); 

delay(10);

}

P.s.: Deixei uma margem no centro de uns 100 graus de resolução do potenciômetro, porque quando ele volta com a mola ele não fica exatamente no centro, e sem esta margem ele provocaria um movimento involuntário do servo.

Obrigado, vou testar e te dou um retorno sim.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço