Tutorial: Control de dos servos mediante Joystick

En este tutorial veremos el uso del Joystick para manejar dos servos usando un eje para un servo y otro eje para el otro.

Para nuestro tutorial de hoy usaremos:

– Tabla con protoboard y sujeción para Arduino UNO cedida por Electrohobby.

– Arduino UNO cedido por Electrohobby.

– Dos servos.

– Un Joystick de Playstation.

– Cables.

Seguidamente podremos ver el mapa de conexiones:

Como podéis ver, las conexiones son bastante sencillas:

Del Joystick salen 5 terminales. VCC (o 5V), GND, VRx (Horizontal), VRy (Vertical) y SW (Switch). VCC lo conectaremos con nuestros 5V del arduino. GND del Joystick con el GND del Arduino. Los pines VRx y VRy los leeremos por los pines analógicos y SW lo trataremos como un pulsador.

Código:

#include <Servo.h>

Servo panServo;//asignamos un eje a un servo y otro eje al otro servo      
Servo tiltServo;      

int servoPanPosition = 90;//posición de referencia
int servoTiltPosition = 90;
int joystickPanSpeed = 0;
int joystickTiltSpeed = 0;
int joystickPanPin = A0; //marcamos entradas analógicas que medirán el ángulo del joystick
int joystickTiltPin = A1;
int servoPanPin = 9;//declaramos los pines digitales por donde le entrará la instrucción del joystick al servo.
int servoTiltPin = 10;
int boton = 8;

void setup()
{
  pinMode(servoPanPin, OUTPUT);//se declara igual que declarariamos un led
  pinMode(servoTiltPin, OUTPUT);
  panServo.attach(servoPanPin);
  tiltServo.attach(servoTiltPin);
}

void loop()
{
  joystickPanSpeed = (analogRead(joystickPanPin) - 512) / 50;
    // -512 to provide equal +/- numbers
  joystickTiltSpeed = (analogRead(joystickTiltPin) - 512) / -50;
    // negative 50 to reverse direction

  servoPanPosition = constrain((servoPanPosition + joystickPanSpeed), 1, 180);
  servoTiltPosition = constrain((servoTiltPosition + joystickTiltSpeed), 1, 180);
    // constarin function to not exceed servo limits

  panServo.write(servoPanPosition);
  tiltServo.write(servoTiltPosition);

  delay(50);
    // adjustable for overall speed
}


Y como siempre el vídeo:


Gracias de antemano.

Un saludo.

C.

7 comentarios en «Tutorial: Control de dos servos mediante Joystick»

    • hola muy buen proyecto me gusto mucho, te pregunto como podría implementar un led para que cuando el servomotor este en 0° y en 180° este se encienda y cuando no este en esos grados este led se apague,(esto para los dos servos),te lo agradecería mucho si me pudieras ayudar.

      Responder
    • hola byktor, yo tambien entre a esta publicacion con la idea de hacer una silla de ruedas pero esta programacion claramente no sirve para eso, vos pudiste hacerla? me podrias compartir tu programacion? gracias y espero que veas esto.

      Responder
  1. hola muy buen proyecto me gusto mucho, te pregunto como podría implementar un led para que cuando el servomotor este en 0° y en 180° este se encienda y cuando no este en esos grados este led se apague,(esto para los dos servos),te lo agradecería mucho si me pudieras ayudar.

    Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.