Вы находитесь на странице: 1из 9

UNIVERSIDAD TECNOLOGICA CENTROAMERICANA

CAMPUS SAN PEDRO SULA


INGENIERIA ELECTRICA MECATRONICA
SENSORES Y ACTUADORES
ARDUINO

OBJETIVOS:

Al completar esta lección de laboratorio, usted habrá aprendido a:

• Comprender los distintos componentes de arduino.


• Utilizar los sketch de la librería de arduino.
• En este tutorial aprenderá a utilizar el arduino uno para controlar un
servomotor y un Joystick.
• Utilizar lenguaje de programación en arduino.

EQUIPOS NECESARIOS:

• 1 Arduino Uno o similar.


• Módulo de Joystick
• 2 Servomotor SM-S4303R
• Protoboard.
MARCO TEORICO

En esta sección se explicará cómo utilizar un servomotor controlado con


joystick con Arduino. Antes de continuar es importante saber qué es un
servomotor o servo. Es un motor eléctrico pero con dos características
especiales.
Por un lado, nos permite mantener una posición que indiquemos, siempre que
esté dentro del rango de operación del propio dispositivo. Por otro lado nos
permite controlar la velocidad de giro, podemos hacer que antes de que se
mueva a la siguiente posición espere un tiempo.

Características técnicas de un servomotor con Arduino

Hay varios modelos de servomotor con Arduino. En este caso vamos a utilizar
un Servomotor SM-S4303R, hay que mirar la ficha técnica del producto.
Todos tienen un funcionamiento muy parecido y la programación puede
variar muy poco.

Cosas a tener en cuenta con este dispositivo. Lo primero, el ángulo de giro, en


este caso nos permite hacer un barrido entre -90º y 90º. Lo que viene a ser un
ángulo de giro de 180º. Tiene una precisión de un grado es decir, podemos
mover de grado en grado.
Estos motores funcionan con una señal PWM, con un pulso de trabajo entre 1
ms y 2 ms y con un periodo de 20 ms (50 Hz). ¿Qué quiere decir todo esto?
Este dato nos indica la velocidad máxima a la que podemos mover el
servomotor con Arduino. Solo podremos cambiar de posición cada 20 ms. Esto
dependerá del tipo y marca de nuestro servo.
Specifications
• Weight: 9 g
• Dimension: 22.2 x 11.8 x 31 mm approx.
• Stall torque: 1.8 kgf·cm
• Operating speed: 0.1 s/60 degree
• Operating voltage: 4.8 V (~5V)
• Dead band width: 10 µs
• Temperature range: 0 ºC – 55 ºC
Características del Joystick

PROCEDIMIENTO:

Paso 1
CONECTANDO EL SERVOMOTOR SM-S4303R y el Joystick
Las conexiones dependerán del tipo de servomotor con Arduino que
estemos utilizando.

Todos deben tener 3 cables. Uno irá a tierra, otro a la alimentación de 5 Voltios y el
tercero a un pin PWM. También SE puede utilizar un shield para controlar
servomotores, como el de Adafruit.

Paso 2
EL PROGRAMA DE CONTROL

PROGRAMA
Ahora vamos a ir a lo interesante, la programación. Para ello tenemos que
hacer uso de una librería externa para poder controlar el servo desde
Arduino. Para incorporar la librería tenemos que ir a Programa/Include
Library/Servo.
//incluimos la librería de servo
#include "Servo.h"

Servo servoMotorObjX;
Servo servoMotorObjY;
Servo servoMotorObjZ;

//pin digital de cada servomotor


int const servoMotorX = 3;
int const servoMotorY = 5;
int const servoMotorZ = 6;

//Variable de salida del joystick


int joystickX = 0;
int joystickY = 0;
int joystickZ = 0;

int eixoX = A0;

int eixoY = A1;

int eixoZ = 2;

void setup() {

servoMotorObjX.attach(servoMotorX);
servoMotorObjY.attach(servoMotorY);
servoMotorObjZ.attach(servoMotorZ);

pinMode(eixoZ, INPUT);

servoMotorObjX.write(90);
servoMotorObjY.write(90);
servoMotorObjY.write(180);

Serial.begin(9600);
}

void loop() {
//Lê o valor do eixoX
joystickX = analogRead(eixoX);

//Lê o valor do eixoY


joystickY = analogRead(eixoY);

//Lê o valor do eixoZ


joystickZ = digitalRead(eixoZ);

imprimeEixos();
joystickX = map(joystickX, 0, 1023, 0, 180);
joystickY = map(joystickY, 0, 1023, 0, 180);
joystickZ = map(joystickZ, 0, 1, 0, 180);

//definindo posición del servo


servoMotorObjX.write(joystickX);
servoMotorObjY.write(joystickY);
servoMotorObjZ.write(joystickZ);

//espera 20 milisegundos.
delay(20);
}

//Serial Monitor nos muestra valores X, Y e Z.


void imprimeEixos() {
//imprime o valor do eixoX
Serial.print(" X=");
Serial.print(joystickX);

//imprime o valor do eixoY


Serial.print(" Y=");
Serial.print(joystickY);

//imprime o valor do eixoZ


Serial.print(" Z=");
Serial.println(joystickZ);
}
PASO 3
1.- Muestre los resultados en un vídeo.

2.- Realice conclusiones de la experiencia y suba el reporte al recurso en la


plataforma.

Вам также может понравиться