#arduino下位机程序
#舵机角度,从大拇指开始
#robotjiaodu = ["80","90","100","80","75"]
#include <Servo.h>
Servo myservoA,myservoB,myservoC,myservoD,myservoE,myservoF;
//创建ABCDE伺服对象,分别代表大拇指,食指,中指,无名指,尾指,手腕
int dataIndex = 0;
void setup() {
// put your setup code here, to run once:
myservoA.attach(3);//定义大拇指引脚为D3,第3脚
myservoA.write(0);
myservoB.attach(5);//定义食指引脚为D5
myservoB.write(0);
myservoC.attach(6);//定义中指引脚为D6
myservoC.write(0);
myservoD.attach(9);//定义无名指引脚为D9
myservoD.write(0);
myservoE.attach(10);//定义尾指引脚为D10
myservoE.write(0);
myservoF.attach(11);//定义手腕引脚为D11
myservoF.write(90);
Serial.begin(115200);//设置波特率
//myservoA.write(0);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()){
char servoName = Serial.read();//获取电机指令中电机编号信息,read读取的是串口中第一个字符
Serial.print("servoName= ");
Serial.print(servoName);
Serial.print(" , ");
int data = Serial.parseInt(); //获取电机指令中的角度信息,parseInt得到的是串口中的整数
switch (servoName){
case 'A'://指令A,设置大拇指角度
myservoA.write(data);//把得到的角度信息写入到大拇指舵机
Serial.print("控制的是拇指:");
Serial.println(data);
break;
case 'B'://指令B,设置食指角度
myservoB.write(data);//把得到的角度信息写入到食指舵机
Serial.print("控制的是食指:");
Serial.println(data);
break;
case 'C'://指令C,设置中指角度
myservoC.write(data);//把得到的角度信息写入到中指舵机
Serial.print("控制的是中指:");
Serial.println(data);
break;
case 'D'://指令D,设置无名指角度
myservoD.write(data);//把得到的角度信息写入到无名指舵机
Serial.print("控制的是无名指:");
Serial.println(data);
break;
case 'E'://指令E,设置尾指角度
myservoE.write(data);//把得到的角度信息写入到尾指舵机
Serial.print("控制的是尾指:");
Serial.println(data);
break;
case 'F'://指令F,设置手腕角度
myservoF.write(data);//把得到的角度信息写入到手腕舵机
Serial.print("控制的是手腕:");
Serial.println(data);
break;
}
}
}
最后修改:2022 年 02 月 16 日
© 允许规范转载