Controlar 4 Servos con dos Joystics

Hola muy buenas

Soy nuevo en esto del mundo Arduino.

Estoy intentando controlar 4 servo con dos joystick pero no hay manera, cuando compilo el codigo no me da ningun error me carga perfectamente en mi Arduino Uno, pero los servos estan quietos hacen ruido y una pequeña vibracion y ya esta.

Les pongo el codigo que estoy usando y una imagen Fritzing que he creado con las conexiones.

A ver si tengo suerte y lo soluciono.

Gracias.

/**
* PanTiltControl
*/

#include <Servo.h>

Servo horzServo; // Create a servo object for the pan (horizontal) servo
Servo vertServo; // Create a servo object for the tilt (vertical) servo
Servo horz1Servo; // Create a servo object for the pan (horizontal) servo
Servo vert1Servo; // Create a servo object for the tilt (vertical) servo

int horzPin = 2; // Analog input for the joystick horizontal axis
int vertPin = 3; // Analog input for the joystick vertical axis
int horz1Pin = 0; // Analog input for the joystick horizontal axis
int vert1Pin = 1; // Analog input for the joystick vertical axis
int vertVal; // Value read from the vertical axis
int horzVal; // Value read from the horizontal axis
int vert1Val; // Value read from the vertical axis
int horz1Val; // Value read from the horizontal axis

/**
* Setup
*/
void setup()
{
  horzServo.attach(8); // Use pin 9 PWM output for horizontal servo
  vertServo.attach(9); // Use pin 10 PWM output for vertical servoç
  horz1Servo.attach(10); // Use pin 9 PWM output for horizontal servo
  vert1Servo.attach(11); // Use pin 10 PWM output for vertical servo
}

/**
* Main program loop
*/
void loop()
{
  horzVal = analogRead(horzPin); // Read joystick horizontal position
  horzVal = map(horzVal, 0, 1023, 0, 179); // Scale reading to suit servo
  horzServo.write(horzVal); // Move servo to required position

  vertVal = analogRead(vertPin); // Read joystick vertical position
  vertVal = map(vertVal, 0, 1023, 0, 179); // Scale reading to suit servo
  vertServo.write(vertVal); // Move servo to required position
  delay(15); // Give the servos time to settle
  
  horz1Val = analogRead(horzPin); // Read joystick horizontal position
  horz1Val = map(horzVal, 0, 1023, 0, 179); // Scale reading to suit servo
  horz1Servo.write(horzVal); // Move servo to required position

  vert1Val = analogRead(vertPin); // Read joystick vertical position
  vert1Val = map(vertVal, 0, 1023, 0, 179); // Scale reading to suit servo
  vert1Servo.write(vertVal); // Move servo to required position
  delay(15); // Give the servos time to settle
 

}

Tambien me gustaria saber si podria controlar los cuatro servos usando la pulsacion del joystick para cambiar de servo.

Gracias de nuevo.

Porque los defines asi

int horzPin = 2; // Analog input for the joystick horizontal axis
int vertPin = 3; // Analog input for the joystick vertical axis
int horz1Pin = 0; // Analog input for the joystick horizontal axis
int vert1Pin = 1; // Analog input for the joystick vertical axis

debe ser asi

int horzPin = A2; // Analog input for the joystick horizontal axis
int vertPin = A3; // Analog input for the joystick vertical axis
int horz1Pin = A0; // Analog input for the joystick horizontal axis
int vert1Pin = A1; // Analog input for the joystick vertical axis

Tambien he probado asi como me dices, las verdad que tengo varios skecth distintos que no me dan ningun error pero me hacen lo mismo.

Ahi esta tu error ademas de los AX

void loop()
{
  horzVal = analogRead(horzPin); // Read joystick horizontal position
  horzVal = map(horzVal, 0, 1023, 0, 179); // Scale reading to suit servo
  horzServo.write(8); // Move servo to required position

  vertVal = analogRead(vertPin); // Read joystick vertical position
  vertVal = map(vertVal, 0, 1023, 0, 179); // Scale reading to suit servo
  vertServo.write(9); // Move servo to required position
  delay(15); // Give the servos time to settle
  
  horz1Val = analogRead(horzPin); // Read joystick horizontal position
  horz1Val = map(horzVal, 0, 1023, 0, 179); // Scale reading to suit servo
  horz1Servo.write(10); // Move servo to required position

  vert1Val = analogRead(vertPin); // Read joystick vertical position
  vert1Val = map(vertVal, 0, 1023, 0, 179); // Scale reading to suit servo
  vert1Servo.write(11); // Move servo to required position
  delay(15); // Give the servos time to settle
 

}

Muchas gracias lo primero por responder tan rapido, pero sigue sin funcionar.

No estoy de acuerdo, eso tiene que funcionar. Si no lo hace es porque tienes algo mal conectado.

Acá junté todas las sugerencias

#include <Servo.h>

Servo ServoHorz0;      // Create a servo object for the pan (horizontal) servo
Servo ServoVert0;      // Create a servo object for the tilt (vertical) servo
Servo ServoHorz1;     // Create a servo object for the pan (horizontal) servo
Servo ServoVert1;     // Create a servo object for the tilt (vertical) servo

const byte s0horPin    = 8;
const byte s0vertPin   = 9;
const byte s1horPin    = 10;
const byte s1vertPin   = 11;

const byte horzPin     = A2;   // Analog input for the joystick horizontal axis
const byte vertPin     = A3;   // Analog input for the joystick vertical axis
const byte horz1Pin    = A0;   // Analog input for the joystick horizontal axis
const byte vert1Pin    = A1;   // Analog input for the joystick vertical axis

unsigned int horz0Val;          // Value read from the horizontal axis
unsigned int vert0Val;          // Value read from the vertical axis
unsigned int horz1Val;         // Value read from the horizontal axis
unsigned int vert1Val;         // Value read from the vertical axis

/* Setup */
void setup() {
  ServoHorz0.attach(s0horPin);  // Use pin 9 PWM output for horizontal servo
  ServoVert0.attach(s0vertPin); // Use pin 10 PWM output for vertical servoç
  ServoHorz1.attach(s1horPin);  // Use pin 9 PWM output for horizontal servo
  ServoVert1.attach(s1vertPin); // Use pin 10 PWM output for vertical servo
}

void loop() {
  horz0Val = analogRead(horzPin);           // Read joystick horizontal position
  horz0Val = map(horz0Val, 0, 1023, 0, 179);// Scale reading to suit servo
  ServoHorz0.write(s0horPin);               // Move servo to required position
  delay(15);                                // Give the servos time to settle
  
  vert0Val = analogRead(vertPin);           // Read joystick vertical position
  vert0Val = map(vert0Val, 0, 1023, 0, 179);// Scale reading to suit servo
  ServoVert0.write(s0vertPin);              // Move servo to required position
  delay(15);                                // Give the servos time to settle
  
  horz1Val = analogRead(horzPin);           // Read joystick horizontal position
  horz1Val = map(horz1Val, 0, 1023, 0, 179);// Scale reading to suit servo
  ServoHorz1.write(s1horPin);               // Move servo to required position
  delay(15);                                // Give the servos time to settle
  
  vert1Val = analogRead(vertPin);           // Read joystick vertical position
  vert1Val = map(vert1Val, 0, 1023, 0, 179);// Scale reading to suit servo
  ServoVert1.write(s1vertPin);              // Move servo to required position
  delay(15);                                // Give the servos time to settle
}

Tenías varios errores.

Mañana lo vuelvo a mirar que hoy no he tenido tiempo.

Muchas gracias por todo.

hola amigos alguien me puede hacer un skech de manejo de 4 servo motores sg90 con dos joytick
es para un colegio tenemos todo armado un brazo robotico con cuatro servos como puedo pasar una foto del mismo para que vean como es y como estan dispuestos los servos necesitamos ayuda ..ok gracias

No te podemos hacer nada planteado del modo que lo haces.
Lee las normas del foro.
El Foro no hace sketch, responde dudas y el que asi lo desea responde mas alla de estas dudas. Pero con tu planteo te aseguro que nadie va a responderte.
De hecho acabas de revivir un hilo del 2017 1 año sin movimientos en un hilo abandonado.
Eso implica que no has leído las normas asi que ya son dos faltas a las mismas.
Voy a mover tu hilo y te recomiendo que te esperes buscando en Google o viendo en Documentación que hay muchos tutoriales de todo tipo.
Suerte y esmérate un poco.