Comandar servo através de um Joystick

Sou ainda iniciante no Arduíno, por isso talvez tenha deixado passar algo. Bem estou querendo controlar um servo (tower pro - sg90) através de um Joystick(Keyes_SJoys - http://bit.ly/QLK9Nc), mas não encontrei nenhum diagrama sobre esse joy. Resolvi tentar fazer as ligações por conta propiá, 5v e gnd foi okay, VRx e VRy ache que seriam entradas anlogicas (4,5), e SW fiz a suposição que fosse a entrada do botão (digital 2), ate ai tudo bem. Ao tentar ler as informações enviadas nas portas analógicas através de Serial.write as informações que foram retornadas são caracteres sem sentido como: "+)++&üüÿøüüûû" bem sem saber oque fazer mandei o servo ler os comandos assim mesmo:

void loop(){
lado = analogRead(4);
delay(20);
Serial.write(lado); //para acompanhar as informações do joy via serial
delay(20);

servo1.write(lado);

}

O servo gira de forma aleatória e sem nexo mesmo sem tocar o Joystick, e para minha surpresa quando posiciono o joy para algum eixo o servo ordena um pouco o seu giro. A partir dai usei de todo tipo de gambiarra que pude pensar para tentar ler o joy e ordenar o servo, mas como esperado sem sucesso. :disappointed_relieved:

Alguém sabe de alguma biblioteca ou algo para que eu possa captar as informações de forma correta do Joystick, alguém pode me ajudar ?

Obs: não encontrei nenhum diagrama ou datasheet para o joy =(.

Obrigado.

Dá uma olhad no Serial.begin, e se seu Serial Monitor tá com o mesmo baud rate

Como o mmoscz disse, verifica o baud rate do serial port.

Relativamente ao servo, acredito que seja preferível testares com valores fixos primeiro, ou a variar com um ciclo.

Outro problema que podes ter é o tamanho das variáveis. O servo aceita valores de 0 a 180, mas o analogRead vai devolver-te valores de 0 a 1023… isso pode explicar o que vês.

Experimenta isto:

loop(){
for (int i = 0; i <=180; i++) {
   servo.write(i);
   delay(500), //isto é para teste. Eu não concordo com delays
}
for (; i >=0; i--) {
   servo.write(i);
   delay(500), //isto é para teste. Eu não concordo com delays
}
}

Obrigado pela ajuda amigos, finalmente consegui, utilizei a função map(). Ai esta o sketch final:

#include <Servo.h>
Servo servo1;
int port;

void setup(){
servo1.attach(7);
servo1.write(90);
}

void loop(){
port = analogRead(5);
port = map(port,0,1023,0,180);
servo1.write(port);
delay(15);
}

Obrigado pela ajuda XD