本课内容:
+ Arduino控制4个伺服电机(舵机)的电路连接说明
+ 通过串口通讯用Arduino控制4个伺服电机(舵机)的示例程序讲解
+ 字符型变量的概念与应用
本课示例代码:(无法复制本站示例程序代码?请点击这里获得解决方法。)
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 57 58 59 60 61 |
/* 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; } } } |