Practica 2 Servomotores

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

INSTITUTO SUPERIOR TECNOLÓGICO

TSA'CHILA
CARRERA DE MANTENIMIENTO ELÉCTRICO Y
CONTROL INDUSTRIAL

Elaborado por: Revisado y aprobado


por:
• Carlos Cárdenas Ing. Jenny Carrillo
• Jefferson Endara
• Patricio Lombeida
• Anderson Muñoz
• Jhoan Muñoz
Coordinador de carrera

DATOS INFORMATIVOS
Nombre del docente: Ing. Andrés García
Asignatura: Máquinas eléctricas
Guía de clase práctica #: 2 Período lectivo: I – 2024
Nivel: Tercero Paralelo: A

1. Título
Control de movimiento de giro del eje de un servomotor utilizando un
potenciómetro.

2. Fundamento teórico

“Un servomotor es un servomecanismo de bucle cerrado que utiliza la


retroalimentación de posición para controlar su velocidad de rotación y posición”.

Así, un servomotor está diseñado para controlar el movimiento de su eje en cuanto


a velocidad, aceleración, torque y posición. El servomotor ideal debe tener la
capacidad para acelerar la inercia del mecanismo, vencer los rozamientos y
compensar fuerzas externas tales como la fricción contra un objeto o la gravedad.
Por lo tanto, la relación de inercia entre la carga y el servomotor es clave para
conseguir un funcionamiento óptimo del sistema.

En cuanto a sus características, existen servomotores lineales y rotativos, de


escobillas o sin escobillas (brushless), de corriente alterna (AC) o de corriente
continua (CC). De forma general, si el servo no cuenta con alguna especificación
en particular, es posible asumir que es rotativo de corriente alterna.
Los servomotores se manejan enviando un pulso eléctrico de ancho variable,
también conocido como modulación de ancho de pulso (PWM), a través del cable
de control. Este pulso puede variar en duración, con un pulso mínimo, un pulso
máximo y una frecuencia de repetición.

En términos generales, un servomotor sólo puede girar 90° en cualquier dirección,


lo que da un movimiento total de 180°.

La clave para controlar los servomotores es conocer el protocolo de comunicación


correcto. Los servomotores se conectan a un circuito electrónico que contiene un
microcontrolador capaz de leer los datos ingresados por el usuario. El
microcontrolador envía entonces una señal eléctrica al servomotor para indicarle
cuál es la velocidad y dirección de giro deseada. Esta señal se conoce como PWM
(Pulse Width Modulation) y el microcontrolador tiene que ser configurado para
generarla de forma correcta.

La forma de control de los servomotores también depende de su construcción.


Los servomotores más comunes se llaman servos rotativos. Estos motores tienen
un eje de salida que puede girar hasta un límite definido. Estos servos se controlan
mediante una señal PWM con diferentes anchos de pulso. Estos anchos de pulso
se modifican para lograr una rotación acorde con las necesidades del usuario.

Otro tipo de servomotores son los servos lineales. Estos motores tienen un eje de
salida que se mueve en línea recta. Estos motores se controlan de forma similar
a los servos rotativos, pero utilizando un controlador de paso y dos señales PWM.
Estas dos señales controlan el avance y el retroceso del eje de salida, permitiendo
al usuario controlar el movimiento lineal del servomotor con precisión.

3. Objetivos

General

Controlar el movimiento de giro del eje de un servomotor utilizando un


potenciómetro y una tarjeta Arduino.

Específicos

● Verificar de manera experimental el funcionamiento de un servomotor.


● Implementar un circuito electrónico de control de un servomotor mediante
una tarjeta Arduino.
● Verificar el funcionamiento de cada uno de los programas anexos en el
preparatorio y redactar los resultados en el informe.
4. Tiempo de duración de la práctica

1 hora
5. Eje transversal

Educación para el desarrollo en la asignatura de máquinas eléctricas.

6. Habilidades blandas a desarrollarse

Trabajo en equipo

7. Evaluación del aprendizaje

Puntualidad: ( )

Diseño: ( )

Funcionalidad: ( )

8. Preparación previa del estudiante

Revisar información de la guía didáctica de la asignatura Máquinas eléctricas.

9. Recursos (Materiales/equipos/sustancias; entre otros)

Computadora personal.
Bobina.

Materiales:
● Tarjeta Arduino Uno-R3 o Arduino Mega 2560
● Un computador
● Cables para el montaje del circuito (UTP)
● Protoboard
● Un Potenciómetro rotatorio
● Un servomotor

10. Procedimiento

● Conectar los elementos siguiendo el diagrama de la Figura 1.


Figura 1. Montaje de Circuito.

Figura 2. Montaje Esquemático y Real.

● Para la conexión del servomotor tener en cuenta la siguiente figura:

Figura 3. Conector de 3 cables. VCC (rojo), GND (Marrón) y Señal (Naranja).

● Probar cada uno de los códigos dados para la tarjeta Arduino.


Código 1: (Ejemplo Sweep)

#include <Servo.h>

Servo myservo; // create servo object to control a servo


// twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
}

Ir cambiando los delay con otros valores y anotar lo que sucede.

Código 2: (Ejemplo girar el motor de 0º a 180º)


*/

// Incluímos la librería para poder controlar el servo


#include <Servo.h>

// Declaramos la variable para controlar el servo


Servo servoMotor;

void setup() {
// Iniciamos el monitor serie para mostrar el resultado
Serial.begin(9600);

// Iniciamos el servo para que empiece a trabajar con el pin 9


servoMotor.attach(9);
}

void loop() {
// Desplazamos a la posición 0º
servoMotor.write(0);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 90º


servoMotor.write(90);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 180º


servoMotor.write(180);
// Esperamos 1 segundo
delay(1000);
}

Cambiar los valores de delay e ir anotando lo que sucede.

Código 3: ( Uso de potenciómetro y señales analógicas)


#include<Servo.h>
Servo myServo;
int const PotPin=A0;
int PotVal;
int angle;
void setup(){
myServo.attach(9);
Serial.begin(9600);
}
void loop(){
PotVal=analogRead(PotPin);
Serial.print("PotVal:");
Serial.print(PotVal);
angle=map(PotVal,0,1023,0,179);
Serial.print ("angle= ");
Serial.println (angle);
myServo.write(angle);
delay (15);
}

● Realizar las Actividades solicitadas en el apartado de resultados.


Para realizar las mismas analizar la librería servo de Arduino:
El IDE Arduino trae una librería completa para el control de servomotores, la
documentación completa lo encontramos en su página oficial: Servo Library

Expliquemos brevemente las funciones de la librería.


La biblioteca Servo admite hasta 12 motores en la mayoría de las placas Arduino
y 48 en el Arduino Mega. En las placas que no sean los de Mega, el uso de la
biblioteca desactiva la funcionalidad PWM en las patillas 9 y 10. En el Arduino
Mega, hasta 12 servos pueden ser utilizados sin interferir con la funcionalidad
PWM, pero si se usan de 12 a 23 motores desactivará el PWM en los pines 11 y 12.

A continuación, se muestran las funciones de la librería Servo:

attach(Pin)

Establece el pin indicado en la variable servo. Ej: servo.attach(2);

attach(Pin,min,max)

Establece el pin indicado en la variable servo, considerando min el ancho de pulso


para la posición 0° y max el ancho de pulso para 180°.Ej: servo.attach(2,900,2100);

write(angulo)

Envía la señal correspondiente al servo para que se ubique en el ángulo indicado,


ángulo es un valor entre 0 y 180°. Ej: servo.write(45);

writeMicroseconds(tiempo)

Envía al servo el ancho de pulso=tiempo en microsegundos. Ej:


servo.writeMicroseconds(1500);

read ()

Lee la posición actual del servo, devuelve un valor entre 0 y 180. Ej: angulo=read
() ;

attached(Pin)

Verifica si la variable servo está unido al pin indicado, devuelve true o false. Ej:
if(attached(2))

detach(pin)

Separa la variable Servo del pin indicado. Ej: servo. detach(2);

11. Resultados esperados


En base a lo realizado hay que explicar que es lo que hace cada código
probado.
Código 1
• introduce la interacción del servomotor. Esto es manipulado por el
controlador que lo tenemos programado para que adquiera la posición del
servomotor dentro de su rango de movimiento de 0 a 180 grados
Código 2
• el servomotor avanza desde 0 grados hasta 90 grados, luego hasta 180
grados, y finalmente regresa a la posición de 0 grados. Entre cada paso, se
incorpora un intervalo de espera de 1 segundo.
Código 3
• introduce la interacción del servomotor con un potenciómetro. Esto permite
al usuario controlar manualmente la posición del servomotor dentro de su
rango de movimiento de 0 a 180 grados. Al girar el potenciómetro, se
ajusta la posición del servomotor en tiempo real, lo que ofrece una forma
intuitiva y directa de controlar su movimiento.

12. Normas de seguridad


Uso de los equipos de protección personal:
● Mascarilla full-face (Caso especial)
● Ropa adecuada (tela jean-ignífuga)

Normas de conducta:
● Se debe entrar y salir de forma ordenada al laboratorio.
● Se debe tener una actitud atenta durante las clases.
● Los alumnos se deben sentar correctamente.
● Se debe escuchar y atender a los docentes.
● Ayudar a los compañeros en caso de así ser requerido.
● Hablar en voz baja.
● No correr dentro del laboratorio.
● Ser puntual.
● Seguir a detalle las instrucciones impartidas por el docente responsable
durante la realización de las actividades.
● Solicitar una revisión técnica al docente responsable de la práctica en
caso de tener inquietudes de la programación en VHDL.
● Ordenar y limpiar el laboratorio terminada la actividad práctica.

Prohibiciones:
● Ingreso de alimentos o bebidas.
● Uso de joyas, reloj o cualquier tipo de metal.
● Normas de conducta inapropiadas.
● Ingreso de estudiantes sin usar los EPP’s
● Ingreso de estudiantes al laboratorio sin autorización y/o docente
● responsable.

13. Cuestionario (En caso que aplique)

1. ¿Qué es una Modulación por Ancho de Pulso PWM?

Es un método habitual para establecer de forma eficiente una frecuencia


fija en fuentes de alimentación conmutadas. Su aplicación se extiende a
todo tipo de fuentes de alimentación en sistemas de control industriales,
electrónica de potencia y sistemas de comunicación digital.

2. ¿Por qué en el circuito y programa 1, en un momento avanza


y despuésretrocede el servomotor?

El servomotor avanza y retrocede en un ciclo porque el programa


está configurado para enviar pulsos PWM que simulan este
movimiento mediante cambios en el ancho y el tiempo de espera
entre los pulsos.

3. ¿Qué sucede con el programa 2?

Pues en este apartado controlamos el ángulo en el cual la hélice se va a


posicionarse, como por ejemplo 0° luego lo mandamos a 90° y al finalizar
los 180° así completándolo la práctica en su totalidad.

4. ¿Qué sucede al variar la resistencia del POT en el circuito de


la Figura 1? Explique en base al tercer código.

Pues la hélice del servomotor gira dependiendo de la dirección en


la cual se mueve la perilla del potenciómetro en un rango de 180°
así pudiendo dejar en cualquier ángulo la hélice

5. ¿Cómo se controla un servomotor?

Los servomotores se manejan enviando un pulso eléctrico de ancho


variable, también conocido como modulación de ancho de pulso (PWM), a
través del cable de control.
Consultar y llenar las partes de un servomotor:

14. Anexos
Anexo 1. Código 1: (Ejemplo Sweep)
Anexo 2. Código 2: (Girar el motor de 0º a 180º)
Anexo 3. Código 3: (Uso de potenciómetro y señales analógicas)

También podría gustarte