Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CASTRO, 2015058131
V. CHAVARRÍA, 2016131679
Grupo 03
CEAB
d’ingénierie
Índice de contenido
1
1. Objetivos.............................................................................................................3
2. Materiales y equipo.............................................................................................3
3. Procedimiento.....................................................................................................3
4. Resultados teóricos y experimentales................................................................5
5. Discusión de resultados......................................................................................6
6. Conclusiones.......................................................................................................7
7. Bibliografía..........................................................................................................7
8. Anexos................................................................................................................8
Índice de figuras
Figura 4.1 Posición inicial del SCARA.......................................................................5
2
1. Objetivos
1. Diseñar del circuito de control para un motor a pasos a partir de un
desplazador de registros bidireccional.
2. Diseñar la interface de potencia entre el control y el motor.
3. Diseñar la interface de potencia utilizando relés de 5 V.
4. Implementar con puentes H.
5. Diseñar el control de un servomotor
2. Materiales y equipo
Entre los materiales y equipos requeridos para el laboratorio está una
fuente de 5V, una ProtoBoard, un CI 555, un desplazador de registros
(CIxx74xx194) o cualquier otro driver, dos Flip-Flop JK (CI 7476), cuatro
transistores, relés de 5V, un motor a pasos, un servomotor, resistencias de
270, 330 y 1000Ω, diodos led, dos capacitores de 1μF, un servomotor, y
demás elementos necesarios para el control del servomotor.
3. Procedimiento
Se analizó el siguiente problema:
3
d. Luego va al punto donde está la pieza de la izquierda y espera 4
segundos para taladrar la otra pieza.
e. Luego de este tiempo se mueve hasta el punto a la derecha para
taladrar otra pieza
Además, se debe poder controlar de la velocidad del motor. “ [ CITATION
Mor18 \l 5130 ]
Por otro lado, también fue necesaria la implementación y diseño de un
circuito de control para un servomotor, en el cual pudiese controlar la dirección
del giro por medio de una serie de botoneras. Fue necesario implementar un
botón que controlara el arranque y pare de este servomotor.
Primeramente, se decidió realizar la programación para controlar el
robot SCARA mediante un Arduino, así como para el control del servomotor.
La programación del control de los brazos del robot se realizó de
manera que primero se pudiera mover manualmente a su posición inicial por
medio de 4 botoneras, las cuales controlaban el movimiento a la izquierda y
derecha de los dos motores de los brazos. Luego, se indicó en la
programación, que al presionar dos botones empezara la secuencia
automática planteada en el problema.
El SCARA ya estaba previamente armado en el laboratorio, por lo cual,
solo se debió conectar el Arduino a la protoboard proporcionada en la
estructura del robot y subir el programa realizado al Arduino.
Por otra parte, el programa del servomotor consistió en la definición de
3 botones, giro horario, giro antihorario y pare. Para esta parte, se tuvo que
importar la librería Servo en la programación e investigar acerca de cómo
utilizarla para el control de un servomotor.
4
4. Resultados teóricos y experimentales
Primero, se subió el programa de control del robot SCARA al arduino. Al
presionar una combinación de botoneras, se llevó al robot a su posición inicial
de forma manual.
5. Discusión de resultados
Para el control del robot SCARA fue muy importante una implementación de
una programación que se encargara de enviar las ordenes y señales a los
diferentes drivers de los motores en conjunto con un circuito físico que se
encargara de enviar las señales según se le brindaran por el operador del
equipo. Una vez que ambos sistemas estuvieron correctamente implementados
los movimientos del robot fueron acordes a los esperados ya que, en su forma
automática, logró cumplir con el problema planteado.
Por otra parte, para el control del servomotor, se destaca la importancia del
software de programación del Arduino, el cual facilitó el modo de
programación. También, la implementación del botón de pare complicó el
programa pues se tuvieron que crear dos variables más que guardaran el
movimiento. A pesar de esto, también se lograron obtener los resultados
esperados.
6
6. Conclusiones
En esta práctica, se logró diseñar e implementar, eficazmente, un proceso
de control del robot SCARA, el cual por medio un circuito de control realizado
en Arduino logró realizar las acciones planteadas en el problema. Con esto se
logró determinar la versatilidad que pueden presentar las programaciones en
Arduino, las cuales, permiten un gran desarrollo de diversas aplicaciones. En
este caso, permitió una completa manipulación de las funciones del robot.
7. Bibliografía
Morera B., A. L. (s.f.). Control Eléctrico. Cartago.
Morera, A. L., & Murillo, L. D. (2019). Manual de Laboratorios. Laboratorio de
Control Eléctrico. Cartago.
7
8. Anexos
a) Programación del SCARA
// Definicion de variables pinMode(MovM1,OUTPUT); if (GiroIzqM1==LOW &&
GiroDerM1==HIGH){
const int bDerecha1 = 4; pinMode(MovM2,OUTPUT); //Giro a la derecha motor 1
//Pin giro derecho motor 1 } digitalWrite(MovM1,LOW);
const int bIzquierda1 = 3; void loop() {
//Pin giro izquierdo motor 1 for (i=0;i<1;i++){
P = analogRead(pot); //Pulsos
const int bDerecha2 = 6; //lectura potenciometro
//Pin giro derecho motor 2 digitalWrite(Motor1,HIGH);
Vel= delay(Vel);
const int bIzquierda2 = 5; map(P,0,1023,2,50);
//Pin giro izquierdo motor 2 //Convierte lectura analogica digitalWrite(Motor1,LOW);
const int Motor1 = 9; de voltaje en pot a un valor
entre 2 y 50 us delay(Vel);
//Pin de salida a Step motor 1
delayMicroseconds (Vel); }
const int Motor2 = 8;
//Pin de salida a Step motor 2 //Frecuencia }
8
digitalWrite(Motor2,LOW); delay(map(analogRead(pot),0, delay(4000); //tiempo de
1023,2,50)); espera de 4s
delay(Vel);
} digitalWrite(MovM1,LOW);
} //Giro a la derecha motor 1
delay (2000); //espera
} de 2s for (i=0;i<500;i++){
if (GiroIzqM2==HIGH && //Pulsos
digitalWrite(MovM1,HIGH);
GiroDerM2==HIGH){ //Giro a la izquierda motor 1
//Empieza el automatico al
digitalWrite(Motor1,HIGH);
presionar los 2 botones de for (i=0;i<250;i++){
giro del segundo motor //Pulsos
digitalWrite(Motor2,LOW);
digitalWrite(Motor2,HIGH); delay(map(analogRead(pot),0,
delay(map(analogRead(pot),0, 1023,2,50));
delay(map(analogRead(pot),0, 1023,2,50));
1023,2,50)); }
}
}
digitalWrite(Motor2,LOW); }
9
b) Programación del servomotor
// restriccion();
int EGiroHorario = 1; //Estado giro H
servo.write(angulo);
int EGiroAntihorario = 1; //estado AH
}
int EPare = 0; // estado pare
if (EGiroAntihorario == HIGH or M2 ==
int M1 = 0; // movimiento horario HIGH){
int M2 = 0; // movimiento antihorario M1 = 0;
M2 = 1;
void setup() { angulo -= 5;
pinMode (GiroHorario,INPUT); // restriccion();
pinMode (GiroAntihorario,INPUT); servo.write(angulo);
pinMode (Pare,INPUT); }
servo.attach(11); if (EPare == HIGH){
servo.write(0); M1 = 0;
Serial.begin(9600); M2 = 0;
} // restriccion();
servo.write(angulo);
void loop() { }
EGiroHorario = digitalRead(GiroHorario); delay(25);
10