//PWM-Duty-Cycle: // 0Grad = 0,55 ms // 5Grad = 0,6 ms // 10Grad = 0,65 ms // 15Grad = 0,7 ms // 20Grad = 0,75 ms // 25Grad = 0,8 ms // 30Grad = 0,85 ms // 35Grad = 0,9 ms // 40 Grad = 0,95 ms // 45 grad = 1,00 ms // 50 Grad = 1,05 ms // 55 Grad = 1,10 ms // 60 Grad = 1,15 ms // 65 Grad = 1,20 ms // 70 Grad = 1,25 ms // 75 Grad = 1,30 ms // 80 Grad = 1,35 ms // 85 Grad = 1,40 ms // 90 Grad = 1,45 ms // 180 Grad = 2,35ms //Define sensors and servos // servo.h instanziert Servo-Objekte und konfiguriert Ausgänge als PWM (bis zu 2ms Duty-Cycle bei 50Hz) #include //Includes servo library Servo finger1, finger2, finger3, finger4, finger5; /* Servo-Kontakte als Ausgang */ int servoPin1 = 5; //gelb int servoPin2 = 6; //gruen int servoPin3 = 9; //blau int servoPin4 = 10; //weiss int servoPin5 = 3; //braun int flexPin1 = A0; //Daumen (braun) int flexPin2 = A1; //Zeigefinger (gelb) int flexPin3 = A2; //Mittelfinger (gruen) int flexPin4 = A3; //Ringfinger (blau) int flexPin5 = A4; //kleiner Finger (weiss) //A5 = NC void setup() { Serial.begin(9600); //Attach the servo objects to their respective pins //Daumen (Sensor: braun, Servo: gelb) finger1.attach(servoPin1); //Zeigefinger (Sensor: gelb, Servo: gruen) finger2.attach(servoPin2); //Mittelfinger (Sensor: gruen, Servo: blau) finger3.attach(servoPin3); //Ringfinger (Sensor: blau, Servo: weiss) finger4.attach(servoPin4); //kleiner Finger (Sensor: weiss, Servo: braun) finger5.attach(servoPin5); pinMode(servoPin1, OUTPUT); pinMode(servoPin2, OUTPUT); pinMode(servoPin3, OUTPUT); pinMode(servoPin4, OUTPUT); pinMode(servoPin5, OUTPUT); int winkel_0 = 10; // Winkel bei kleinen Sensorwerten int pos1 = winkel_0; int pos2 = winkel_0; int pos3 = winkel_0; int pos4 = winkel_0; int pos5 = winkel_0; //Tells servos to move by the amount specified in the "pos" variables finger1.write(pos1); //Daumen finger2.write(pos2); //Zeigefinger finger3.write(pos3); //Mittelfinger finger4.write(pos4); //Ringfinger finger5.write(pos5); //kleiner Finger (Sensor: weiss) }