Temario de mantenimiento de maquinas rotaitivas
Enviado por Angel Montellano • 10 de Febrero de 2020 • Práctica o problema • 1.891 Palabras (8 Páginas) • 120 Visitas
// Control por serial del brazo robot
// Proyecto Brazo Robot
#include
Servo myservo; // creamos los objetos de los diferentes servos.
Servo myservo_2;
Servo myservo_3;
Servo myservo_4;
Servo myservo_5;
int pos_myservo = 90; // Definimos las posiciones iniciales del robot
int pos_myservo_2 = 120;
int pos_myservo_3 = 90;
int pos_myservo_4 = 30;
int pos_myservo_5 = 90;
int next_pos_myservo=90;
int next_pos_myservo_2=120;
int next_pos_myservo_3=90;
int next_pos_myservo_4=30;
int next_pos_myservo_5=90;
//Definimos los limites de movimiento del robot
int myservo_lim_1 = 120;
int myservo_lim_2 = 30;
int myservo_2_lim_1 = 160;
int myservo_2_lim_2 = 90;
int myservo_3_lim_1 = 120;
int myservo_3_lim_2 = 50;
int myservo_4_lim_1 = 90;
int myservo_4_lim_2 = 20;
int myservo_5_lim_1 = 95;
int myservo_5_lim_2 = 40;
int print_sel_servo = 0;
int print_mov_servo = 0;
int num_servo = 0;
int mov_ter = 0;
void setup()
{
Serial.begin(9600); //Iniciamos la comunicacion serial
// Definicion del servo de la base
myservo.attach(9,500,2500); // attaches the servo on pin 9 to the servo object
myservo.write(pos_myservo); //Lo giramos a su posicion inicial
myservo_2.attach(10,500,2500);
myservo_2.write(pos_myservo_2);
delay(200);
myservo_3.attach(8,500,2500);
myservo_3.write(pos_myservo_3);
delay(200);
myservo_4.attach(7,500,2500);
myservo_4.write(pos_myservo_4);
delay(200);
myservo_5.attach(6,500,2500);
myservo_5.write(pos_myservo_5);
delay(1000);
}
void loop() {
// Apertura y cierre de la pinza
if (print_sel_servo == 0){
Serial.println("Introduce el numero del servo que quieres controlar");
print_sel_servo = 1;
}
if(Serial.available() > 0) {
num_servo = Serial.parseInt();
switch (num_servo) {
case 1:
Serial.println("Servo de la base seleccionado:");
while (mov_ter == 0){
if (print_mov_servo == 0){
Serial.println(" Introduce el giro para el servo que quieres realizar");
print_mov_servo = 1;
}
if(Serial.available() > 0){
next_pos_myservo = Serial.parseInt();
Serial.print(" La posicion introducida es:");
Serial.println(next_pos_myservo);
if(next_pos_myservo>myservo_lim_2 && next_pos_myservo
myservo.write(next_pos_myservo); //Mueve el servo a la posición entrada (excepto si es 0)
mov_ter = 1;
print_sel_servo = 0;
Serial.println(" Movimiento realizado!");
}
else {
Serial.println(" El valor de movimiento para el servo no esta permitido, introduce otro valor!");
}
}
}
break;
case 2:
Serial.println("Segundo servo seleccionado:");
while (mov_ter == 0){
if (print_mov_servo == 0){
Serial.println(" Introduce el giro para el servo que quieres realizar");
print_mov_servo = 1;
}
if(Serial.available() > 0){
next_pos_myservo_2 = Serial.parseInt();
Serial.print(" La posicion introducida es:");
Serial.println(next_pos_myservo_2);
if(next_pos_myservo_2>myservo_2_lim_2 && next_pos_myservo_2
...