手臂資料
總重量約為0.6kg
夾取重量約為0.15kg
控制手臂可從序列埠輸入數值控制,序列埠輸入數值 為(asin(列印件距離/100)+50)/0.09//10*10)。
最長夾取距離的序列埠輸入值為2060。
最終程式
#include
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | Servo myservo;
Servo myservo2;
Servo myservo3;
Servo myservo4;
int Pin = 3;
int limt;
void setup()
{
Serial.begin(9600);
myservo.attach(9, 500, 2500); // 修正脈衝寬度範圍
myservo2.attach(10, 500, 2500);// 修正脈衝寬度範圍
myservo3.attach(10, 500, 2500);
myservo4.attach(10, 500, 2500);
pinMode(Pin,INPUT);
}
void loop()
{
limt = digitalRead(Pin);
myservo.write(0);
myservo2.write(0);
myservo3.write(0);
myservo4.write(0);
int d;
int e;
if(Serial.available()){
d = Serial.parseInt();
Serial.println(d);
if(0 <= d && d <= 2500){
delay(3000);
for(int i = 500; i <= d; i+=10){
myservo.writeMicroseconds(i); // 直接以脈衝寬度控制
myservo2.writeMicroseconds(i);
myservo3.writeMicroseconds(1500);
delay(10);
}
delay(3000);
for(int i = 500; i <= 1350 ; i+=10){
myservo4.writeMicroseconds(i);
delay(10);
delay(1000);
for(int i = d; i >= 500; i-=10){
myservo.writeMicroseconds(i);
myservo2.writeMicroseconds(i);
myservo3.writeMicroseconds(1500);
delay(10);
}
delay(1000);
for(int i = 1350 ; i >= 500; i-=10){
myservo4.writeMicroseconds(i);
delay(10);
}
}
}
}
}
|
Comments
comments powered by Disqus