int joyh = analogRead(A4);
if(joyh < 410 || joyh > 450)
{
valor = map(joyh, 100, 800, 70, 180);
int joyh = analogRead(A4);
servodireccao.write(valor); // servo direction
delay(15);
}
Why are you creating a local variable in this if block/ The value assigned to it is never used.
It does not make sense to use one range of values in the call to map, for joyh between 0 and 409 AND for joyh between 451and 1023.