快捷搜索:  汽车  科技

arduino编程参考手册(ArduinomeArm机械臂学习笔记2)

arduino编程参考手册(ArduinomeArm机械臂学习笔记2)base 英 [beɪs] n. 基底;基础;基地;基本成分; (晶体管的)基极b180 B这个电机旋转180度

arduino编程参考手册(ArduinomeArm机械臂学习笔记2)(1)

控制伺服电机

通过串口向Arduino发送指令控制一台舵机的原理和示例程序

arduino编程参考手册(ArduinomeArm机械臂学习笔记2)(2)

/* Serial-Servo-1 by太极创客(2016-06-2) www.taichi-maker.com 本示例程序为配合太极创客制作的《零基础入门学用Arduino教程-MeArm篇使用》 本示例程序旨在演示如何通过串口监视器控制1个伺服电机(舵机)。 有关电路连接以及其他相关内容,请参见太极创客网站关于本示例程序的相关页面。 This example code is in the public domain. */ #include <Servo.h> Servo myServo; //创建Servo对象myServo int dataIndex = 0; //创建整数型变量,存储输入数据序列号 void setup() { myServo.attach(6); Serial.begin(9600); //启动串口通讯,传输波特率9600 Serial.println("Please input serial data."); } void loop() { // 检查串口缓存是否有数据等待传输 if ( Serial.available()>0 ) { dataIndex ; // 处理数据序列号并通过串口监视器显示 Serial.print("dataIndex = "); Serial.print(dataIndex); Serial.print(" "); int pos = Serial.parseInt(); // 解析串口数据中的整数信息并赋值给变量pos Serial.print("Set servo position: "); Serial.println(pos); // 通过串口监视器显示变量pos数值 myServo.write(pos); // 使用pos变量数值设置伺服电机 delay(15); } }控制4个伺服电机

arduino编程参考手册(ArduinomeArm机械臂学习笔记2)(3)

claw 英 [klɔː] n. 爪;螯,钳;爪形器具 vi. 用爪抓(或挖) vt. 用爪抓(或挖)

fore 英 [fɔː(r)] adj. 在前部的,前面的

rear 英 [rɪə(r)] n. 后面;后方部队;屁股 adj. 后方的,后面的;背面的

base 英 [beɪs] n. 基底;基础;基地;基本成分; (晶体管的)基极

b180 B这个电机旋转180度

arduino编程参考手册(ArduinomeArm机械臂学习笔记2)(4)

arduino编程参考手册(ArduinomeArm机械臂学习笔记2)(5)

/* Serial-Servo-2 by太极创客(2016-06-03) www.taichi-maker.com 本示例程序为配合太极创客制作的《零基础入门学用Arduino教程-MeArm篇》使用 本示例程序旨在演示如何通过串口监视器控制4个伺服电机(舵机)。 有关电路连接以及其他相关内容,请参见太极创客网站关于本示例程序的相关页面。 This example code is in the public domain. */ #include <Servo.h> Servo base fArm rArm claw; //建立4个电机对象 int dataIndex = 0; void setup() { base.attach(11); // base 伺服电机连接引脚11 电机代号'b' rArm.attach(10); // rArm 伺服电机连接引脚10 电机代号'r' fArm.attach(9); // fArm 伺服电机连接引脚9 电机代号'f' claw.attach(6); // claw 伺服电机连接引脚6 电机代号'c' Serial.begin(9600); Serial.println("Please input serial data."); } void loop() { if (Serial.available()) { // 检查串口缓存是否有数据等待传输 char servoName = Serial.read(); //获取电机指令中电机编号信息 Serial.print("servoName = "); Serial.print(servoName); Serial.print(" "); int data = Serial.parseInt(); //获取电机指令中电机角度信息 switch(servoName){ //根据电机指令中电机信息决定对哪一个电机进行角度设置 case 'b': // 电机指令b,设置base电机角度 base.write(data); Serial.print("Set base servo value: "); Serial.println(data); break; case 'r': // 电机指令r,设置rArm电机角度 rArm.write(data); Serial.print("Set rArm servo value: "); Serial.println(data); break; case 'f': // 电机指令f,设置fArm电机角度 fArm.write(data); Serial.print("Set fArm servo value: "); Serial.println(data); break; case 'c': // 电机指令c,设置claw电机角度 claw.write(data); Serial.print("Set claw servo value: "); Serial.println(data); break; } } }

猜您喜欢: