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
Tags:
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por