#include <Servo.h>


//Settings
  const boolean isRight = 1; // Right : 1, Left : 2
  
  const int outThumbMin = 0; //Right:close, Left:open, = minimum thumb angle
  const int outThumbMax = 30; //maximum thumb angle
  
  const int outIndexMin = 54; //min index angle
  const int outIndexMax = 142; //max index angle
  
  const int outOtherMin = 60; //min otherfingers angle 
  const int outOtherMax = 140; //max otherfingers angle



  int pinServoThumb = 6 ; //Pin servo is attached on
  int pinServoIndex = 3 ; 
  int pinServoOther = 5 ;



  
  
  int pinP1 = A0; //Pin Potentiometer 1
  int pinP2 = A1; //Pin Potentiometer 2
  int pinP3 = A2; //Pin Potentiometer 3



//Hardware Servo
Servo servoThumb; //ThumbFinger
Servo servoIndex; //IndexFinger 
Servo servoOther; //OtherFingers
  int posP1 = 0;  //Potentiometer 1 value
  int posP2 = 0;
  int posP3 = 0;
  int P1Min = 0; //Potentiometer 1 minimum value
  int P1Max = 1023; //Potentiometer 1 maximum value
  int P2Min = 0;
  int P2Max = 1023;
  int P3Min = 0;
  int P3Max = 1023;


void setup() {
Serial.begin(9600);

  servoIndex.attach(pinServoIndex);
  servoOther.attach(pinServoOther);
  servoThumb.attach(pinServoThumb);

while (millis() < 3000) { //First 3 seconds initialisation
  
//  servoThumb.write(outThumbMin);
  delay (100);
//  servoIndex.write(outIndexMin);
  delay (100);
//  servoOther.write(outOtherMin);
  delay (100);
  }
 
  delay (2000); // delay 2sec
  
}

 
void loop() {

  posP1 = map(analogRead(A0),0,1023,outThumbMin, outThumbMax); //map potentiometer min and max value to min and max servomotor angle
  servoThumb.write(posP1); //apply the angle

    Serial.print (analogRead(A0)); Serial.print ("\t"); Serial.print (posP1); Serial.print ("\t");   //Write data in the monitor  
    delay (10);

 posP2 = map(analogRead(A1),0,1023,outIndexMin, outIndexMax);
servoIndex.write(posP2);

 Serial.print (analogRead(A1)); Serial.print ("\t"); Serial.print (posP2); Serial.print ("\t");
    delay (10);

 posP3 = map(analogRead(A2),0,1023,outOtherMax, outOtherMin);
  servoOther.write(posP3);

    Serial.print (analogRead(A2)); Serial.print ("\t"); Serial.print (posP3); Serial.println ("\t");
    delay (10);
}
