92 lines
2.1 KiB
Arduino
92 lines
2.1 KiB
Arduino
|
|
||
|
//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 <Servo.h> //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)
|
||
|
}
|
||
|
|