Explicación código
#include <Servo.h> //configura la librería del servo
Servo S1; //les pone nombres a los servos
Servo S2;
Servo S3;
Servo S4;
Servo S5;
char M;//variable que lee, guarda y escribe caracteres
char N;//variable que lee, guarda y escribe caracteres
int D1=0;//cada uno de los dedos
int D2=0;
int D3=0;
int D4=0;
int D5=0;
char OD;//variable de caracteres que se usa para cambiar dedo que se elige con el slider
int OD1;//dedos
int OD2;
int OD3;
int OD4;
int OD5;
void setup(){ //se ejecuta 1 vez
S1.attach(2);//le asigna los pines a los servos
S2.attach(4);
S3.attach(7);
S4.attach(8);
S5.attach(12);
Serial.begin(9600);//inicia el monitor serial
void Dedos(D1,D2,D3,D4,D5);// vincula el void con todas las variables de los dedos (se levantan todos los dedos)
}
void loop(){//se repite todo el tiempo
int i=7;//le da a la variable i el valor de 7
if(Serial.available()){//si se escribe algo
M=Serial.read();//todo lo que se escriba en el serial monitor se guarda en la variable M
Serial.println(M);//en el serial monitor se escribe todo lo que se guarda en la variable M
if(M=='A'){//cuando se escriba la letra A en el serial monitor hace todo esto
D1=0;// le da el valor a los dedos para que se mueva el servo (se levanta el pulgar)
D2=180;
D3=180;
D4=180;
D5=180;
void Dedos(D1,D2,D3,D4,D5);//vincula nuevamente el void con el valor de las variables de los dedos
}
if(M=='B'){
D1=180;
D2=0;
D3=180;
D4=180;
D5=0;
void Dedos(D1,D2,D3,D4,D5);
}
if(M=='C'){
D1=180;
D2=180;
D3=0;
D4=180;
D5=180;
void Dedos(D1,D2,D3,D4,D5);
}
if(M=='L'){//cuando se escriba la letra L en el serial
while(i==7){//mientras i=7
int F1=analogRead(A1);//le da a la variable de los flex el valor de A1
int F2=analogRead(A2);
int F3=analogRead(A3);
int mF1=map(F1,170,266,180,0);//mapea los valores de los flex
int mF2=map(F2,130,217,180,0);
int mF3=map(F3,46,86,180,0);
S1.write(mF1);//le da de valor a los servos el mapeado de los flex
S2.write(mF2);
S3.write(mF3);
S4.write(mF2);
S5.write(mF1);
if(Serial.available()){//cuando se escribe en el serial hace todo esto
N=Serial.read();//todo lo que se escriba en el serial se guarda en la variable N
Serial.println(N);//se escribe en el serial la variable N
if(N=='R'){//si se escribe R en el serial le da a i el valor de 1 para romper el while
i=1;
}
}
}
}
if(M=='l'){//cuando se escriba I en el serial hace todo esto
while(i=7){//mientras i=7
if(Serial.available()){//si se escribe hace todo esto
char OD=Serial.read();//guarda en la variable char todo lo que se manda en el serial
if(OD=='Q'){//si se manda la letra Q en el serial hace todo esto
int OD1=Serial.parseInt();//la variable del dedo 1 toma el valor del numero que se mande en el serial
Serial.print(OD);//escribe lo que se mandan en el serial
Serial.println(OD1);//escribe todos los números que se mandan en el serial
}
while(OD=='W'){
int OD2=Serial.parseint();
Serial.print(OD);
Serial.println(OD2);
}
while(OD=='E'){
int OD3=Serial.parseint();
Serial.print(OD);
Serial.println(OD3);
}
while(OD=='R'){
int OD4=Serial.available();
Serial.print(OD);
Serial.println(OD4);
}
while(OD=='T'){
int OD5=Serial.available();
Serial.print(OD);
Serial.println(OD5);
}
S1.write(OD1);//le da la posición al servo de cada uno de las variables de los dedos
S2.write(OD2);
S3.write(OD3);
S4.write(OD4);
S5.write(OD5);
}
if(Serial.available()){//cuando escribe algo en el serial
N=Serial.read();//se guarda en la variable N lo que se escribe en el serial
if(N=='Y'){//si se escribe la letra Y se escribe en el serial “Modo Libre Desactivado” y la de a i el valor de 1
Serial.print("Modo Libre desactivado");
i=1;
}
}
}
}
}
}
void Dedos (int D1,int D2,int D3, int D4, int D5){//se crea un void para no tener que repetir todo el tiempo la posición de los servos
S1.write(D1);//
S2.write(D2);
S3.write(D3);
S4.write(D4);
S5.write(D5);
}