机械臂控制代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
##include
#include
#include
#include "Wire.h"
#include "WiiChuck.h"
Servo servo1; // create servo object to control a servo
Servo servo2;
Servo servo3;
Servo servo4; // a maximum of eight servo objects can be created Servo servo5;
Servo servo6;
WiiChuck wii = WiiChuck();
int pos1,pos2,pos3,pos4,pos5,pos6,x,y,z,c; // variable to store the servo position
void setup()
{
// attaches the servo on pin 9 to the servo object
servo1.attach(8);
servo2.attach(9);
servo3.attach(10);
servo4.attach(11);
servo5.attach(12);
servo6.attach(13);
pos1 = 60;
pos2 = 50;
pos3 = 100;
pos4 =100;
pos5 = 90;
pos6 = 90;
servo1.write(pos1);
servo2.write(pos2); servo3.write(pos3); servo4.write(pos4); servo5.write(pos5); servo6.write(pos6);
wii.initWithPower(); }
void loop()
{
if(true == wii.read() )
{
//读取手柄值
x=wii.getJoyAxisX();
y=wii.getJoyAxisY();
c=wii.getButtonC();
z=wii.getButtonZ();
}
if(x==255 && y>120 && y<140 && c == 0 && z==1)//一号舵机 { pos1 = pos1+10;
servo1.write(pos1);
delay (40);
if(pos1>160)
{
pos1=160;
servo1.write(pos1);
}
}
else if(x==255 && y>120 && y<140 && z==0 && c==1 ) { pos1 = pos1-10;
servo1.write(pos1);
delay(40);
if(pos1<20)
{
pos1=20;
servo1.write(pos1);
}
}
else if(x>220 && y==0 && c == 0 && z==1) //2号舵机
{
pos2 = pos2+10;
servo2.write(pos2);
delay (40);
if(pos2>160)
{
pos2=160;
servo2.write(pos2);
}
else if(x>220 && y==0 && z==0 && c==1 )
{
pos2 = pos2-10;
servo2.write(pos2);
delay(40);
if(pos2<90)
{
pos2=90;
servo2.write(pos2);
}
}
else if(x>110 && x<140 && y==0 && c == 0 && z==1) //3号舵机 {
pos3 = pos3+10;
servo3.write(pos3);
delay (40);