You are on page 1of 6

Universidad de Santiago de Chile

Facultad de Ingeniera
Departamento de Ingeniera Elctrica

Pre-informe de Laboratorio N6:


Plataforma Arduino: Manejo de Robots Mviles

Profesor: lvaro Daz


Alumno: David Valenzuela

1. Servomotores

a. Cuadro comparativo entre el servomotor de giro continuo y servomotor de giro


restringido.

Servomotor giro continuo Servomotor giro restringido


Giran en 360 Giran en 180
Tienen 3 cables: uno se conecta a Vcc, otro Tienen 3 cables: uno se conecta a Vcc, otro
a Tierra (Ground) y otro a un terminal de a Tierra (Ground) y otro a un terminal de
Arduino Arduino
Se puede controlar la direccin y la Se puede controlar la direccin y la
velocidad del giro de sus ejes mediante velocidad del giro de sus ejes mediante
impulsos elctricos (PWM). impulsos elctricos (PWM).
El tiempo entre un pulso y el siguiente debe El tiempo entre un pulso y el siguiente debe
ser de 20 milisegundos ser de 20 milisegundos
Si el ancho del pulso es de 1,5 milisegundos, Si el ancho del pulso es de 1,5 milisegundos,
el servomotor se detiene el servomotor se detiene
Si el ancho del pulso es de entre 1.9 a 2.2 Si el ancho del pulso es de 1,3 milisegundos,
milisegundos, el servo motor se mueve a la el servo motor se mueve a la mxima
mxima velocidad en sentido antihorario. velocidad en sentido antihorario.
Si el ancho del pulso es de 0.8 a 1.2 Si el ancho del pulso es de 1,7 milisegundos,
milisegundos, el servo motor se mueve a la el servo motor se mueve a la mxima
mxima velocidad en sentido horario. velocidad en sentido horario.
b. Dibuje un diagrama con los posibles movimientos que puede realizar un
servomotor de giro restringido.

c. Describa las partes internas que componen los servomotores a utilizar.

Los servomotores son motores de corriente continua que incorporan un circuito electrnico
que permite controlar la direccin y la velocidad de giro de sus ejes mediante impulsos
elctricos (PWM). El servomotor tiene 3 cables; dos de alimentacin (rojo (+) y negro (-)),
entre 5V y 7.5V, y uno de seal de control (amarillo o blanco), que se conecta a un pin de la
tarjeta de control (placa Arduino).
El servomotor, bsicamente, est compuesto por:

Motor elctrico: es el encargado de generar el movimiento a travs de su eje.


Sistema de regulacin: formado por engranajes, que actan sobre el motor para
regular su velocidad.
Sistema de control o sensor: circuito electrnico que controla el movimiento del
motor mediante el envo de pulsos elctricos.
Potencimetro: conectado al eje central del motor que permite saber en todo
momento el ngulo en el que se encuentra el eje del motor

2. Programacin

a. Indique los comandos y la sintaxis de los comandos que permiten al Arduino


Leonardo controlar servomotores usando pulsos y retardos de tiempo (sin usar la
librera Servo.h).

analogWrite(pin, value)

Esta instruccin sirve para escribir un pseudo-valor analgico utilizando el procedimiento


de modulacin por ancho de pulso (PWM) a uno de los pines de Arduino marcados como
PWM. El valor que se puede enviar a estos pines de salida analgica puede darse en forma
de variable o constante, pero siempre con un margen de 0-255. Si enviamos el valor 0
genera una salida de 0 voltios en el pin especificado; un valor de 255 genera una salida de
5 voltios de salida en el pin especificado.

Para hacer que el servomotor gire en sentido antihorario, se propone el siguiente cdigo:

void setup()

{
pinMode (2, OUTPUT); // configura pin 2 como salida
}

void loop()

{ for (i=0; i<=255; i++)

analogWrite(2, i);
delaymicroseconds(1300);
analogWrite(2, 0);
delaymicroseconds(18700);

b. Indique los comandos y la sintaxis de los comandos, que permiten al Arduino


controlar servomotores usando la librera Servo.h .

.attach: permite indicar en que pin est conectado el servo


.write: indica en qu ngulo se quiere posicionar el servomotor.

Cdigo:

#include <Servo.h>

Servo servoMotor; // Declaramos la variable para controlar el servo

void setup()

{
servoMotor.attach(9); // Iniciamos el servo para que empiece a trabajar con el pin 9
}

void loop() {

for(i=0;i <181; i++)

{
servoMotor.write(i); // el servo se desplaza de 0 a 180
}

}
c. Realice un programa que permita enviar un pulso con una duracin de 1,5 ms a
cada servo del robot didctico.

void setup()

{
pinMode (2, OUTPUT); // configurar pin 2 como salida
}

void loop()

{ for (i=0; i<=255; i++)

analogWrite(2, i);
delaymicroseconds(1500);
analogWrite(2, 0);
delaymicroseconds(18500);
}

d. Escriba un programa que enve un pulso de 1,7 ms a los servomotores conectados


a los pines 2 y 3 del Arduino Leonardo en forma indefinida.

void setup()

{
pinMode (2, OUTPUT); // configurar pin 2 como salida
pinMode (3, OUTPUT); // configurar pin 2 como salida

void loop()

{ for (i=0; i<=255; i++)

analogWrite(2, i);
analogWrite(3, i);
delaymicroseconds(1500);
analogWrite(2, 0);
analogWrite(3, 0);
delaymicroseconds(18500);
}
e. Por qu si vara la duracin del pulso enviado a un servomotor de giro continuo,
este vara su velocidad?, Qu pasa en el caso de un servomotor de giro
restringido?

Debido a que es el es el ancho el pulso lo que controla el ngulo en que se posiciona el


servomotor. As, si el ancho de pulso disminuye, el servo se mueve de manera proporcional
hacia un lado, y si el ancho de pulso aumenta, el servo gira hacia el otro lado, disminuyendo
tambin proporcionalmente su velocidad, que es mxima en el ancho especfico que el
fabricante seala. La situacin es la misma para un servomotor de giro restringido.

You might also like