Control de dos servos mediante Joystick

Arduino y Electrónica

arlex

Tecnólogo en sistemas y electrónica, con diplomados en informática, electrónica digital, análoga, diseño de tarjetas PCB multicapas y programación arduino.

09/06/2019

Proyecto Control de dos servos mediante Joystick.

En este  proyecto veremos el uso del Joystick para manejar dos motores servo, este proyecto se puede aplicar en robots, y muchas otras aplicaciones.

El Control de dos servos mediante Joystick, funciona de la siguiente manera:

los pines de conexión para el joystick  están dados en A0 y A1 para marcar la entrada de señal y el pin 9 será quien reciba la instrucción de giros en los motores.

la estructura de las instrucciones para el joystick  están en el siguiente extracto del programa.

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.

Ahora bien, la conexión de un servo motor es de la siguiente manera.Control de dos servos mediante Joystick

este servo trae solo tres pines los cuales están distinguidos por colores

donde el amarillo es la señal la cual se conecta en el pin 10 para un motor y pin 11 para el otro motor.

el cable negro es para el polo negativo y el rojo es para el polo positivo 5 voltios para alimentación.

 

MATERIAL PARA EL PROYECTO

1-arduino nano
2-servo motores
1-joystick
1-protoboard
cables de varios tamaños
fuente de regulación a 5 voltios por 2 amperios

Seguidamente podremos ver el diagrama esquemático de conexiones:

Control de dos servos mediante Joystick

código del proyecto Control de dos servos mediante Joystick

#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
 }

 

  • 28
  •  
  •  
  • 6
  •  
  •  

¡¡Somos una comunidad en crecimiento.!!

%

suscriptores actuales

En este módulo están los dos videos más vistos en el momento, donde estaré creando contenido acerca de esta poderosa herramienta, donde diseño circuitos electrónicos en kicad

Video tutorial en actual estreno.!!

Quizás también te interese leer…

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *