MeArm机械臂(Arduino)

张开发
2026/5/19 3:14:47 15 分钟阅读
MeArm机械臂(Arduino)
打算搞点小项目于是打算拿MeArm机械臂入手主要就是舵机控制机械运动于是先试验了舵机的功能由以下代码实现#include Servo.h//Servo myservo;Servo base,fArm,rArm,claw;int pos 0;//二维数组int data[4][5]{0,45,90,135,180,45,90,135,180,0,90,135,180,0,45,135,180,0,45,90,};//一维数组int infor[5]{0,45,90,135,180};void setup(){base.attach(6);fArm.attach(9);rArm.attach(10);claw.attach(11);Serial.begin(9600);Serial.println(send a datd);}//控制四个舵机向相同角度运动/*void loop(){for(int i 0;i5;i){base.write(infor[i]);delay(15);fArm.write(infor[i]);delay(15);rArm.write(infor[i]);delay(15);claw.write(infor[i]);delay(15);}for(int i 4;i0;i--){base.write(infor[i]);delay(15);fArm.write(infor[i]);delay(15);rArm.write(infor[i]);delay(15);claw.write(infor[i]);delay(15);}}*///控制四个舵机自动向不同的角度运动/*void loop(){for(int i 0;i5;i){base.write(data[0][i]);delay(15);fArm.write(data[0][i]);delay(15);rArm.write(data[0][i]);delay(15);claw.write(data[0][i]);delay(15);}for(int i 4;i0;i--){base.write(data[0][i]);delay(15);fArm.write(data[0][i]);delay(15);rArm.write(data[0][i]);delay(15);claw.write(data[0][i]);delay(15);}}*///分别控制四个舵机各角度运动/*void loop(){if(Serial.available()){char nameSerial.read();Serial.print(Name:);Serial.print(name);Serial.print(,);posSerial.parseInt();switch(name){caseb:base.write(pos);Serial.print(data:);Serial.println(pos);delay(15);break;casef:fArm.write(pos);Serial.print(data:);Serial.println(pos);delay(15);break;caser:rArm.write(pos);Serial.print(data:);Serial.println(pos);delay(15);break;casec:claw.write(pos);Serial.print(data:);Serial.println(pos);delay(15);break;}}}*///四个舵机自动/*void loop(){for(pos0;pos180;pos){base.write(pos);delay(10);fArm.write(pos);delay(10);rArm.write(pos);delay(10);claw.write(pos);delay(100);}for(pos180;pos0;pos--){base.write(pos);delay(10);fArm.write(pos);delay(10);rArm.write(pos);delay(10);claw.write(pos);delay(100);}}*///四个舵机同时驱动/*void loop(){if(Serial.available()){posSerial.parseInt();Serial.print(Received:);Serial.println(pos);if(pos0pos180){base.write(pos);delay(10);fArm.write(pos);delay(10);rArm.write(pos);delay(10);claw.write(pos);delay(100);}}}*///单个舵机驱动/*void setup() {myservo.attach(9);Serial.begin(9600);Serial.println(Ready. Send a number (0-180));}void loop() {if (Serial.available()) {pos Serial.parseInt();// 打印接收到的值看是否为0Serial.print(Received: );Serial.println(pos);// 只处理有效范围内的值if (pos 0 pos 180) {myservo.write(pos);delay(15);}}}*/

更多文章