首页 理论教育 如何利用Arduino控制舵机进行招手动作

如何利用Arduino控制舵机进行招手动作

时间:2023-06-24 理论教育 版权反馈
【摘要】:当我们把舵机、Arduino与电脑连接好之后就可以编写程序对舵机进行控制了。通过学习,希望同学们掌握如何导入Arduino自带的Servo类成员函数,能熟悉掌握Servo类成员函数的实现方法,调用Servo类成员函数完成舵机的各项运动。Arduino中有很多库函数,有些硬件需要搭配相应的库函数进行使用。现在,我们让舵机模拟一个招手的动作。在这里,时间控制可以用delay语句来实现。

如何利用Arduino控制舵机进行招手动作

当我们把舵机、Arduino与电脑连接好之后就可以编写程序对舵机进行控制了。程序还是在Arduino IDE中进行编写。通过学习,希望同学们掌握如何导入Arduino自带的Servo类成员函数,能熟悉掌握Servo类成员函数的实现方法,调用Servo类成员函数完成舵机的各项运动

首先,将舵机控制程序写在Arduino IDE中,程序如下:

#include<Servo.h>  //引用Servo

#define myservoPin 7 //定义舵机引脚端口号7常量定义

Servo myservo; //舵机定义

void setup() {

 myservo.attach(myservoPin); //设定舵机接口

}

void loop(){

 myservo.write(0); //设置舵机角度

}

第一行#include<Servo.h>语句的目的是启用Servo.h这个库函数。

Arduino中有很多库函数,有些硬件需要搭配相应的库函数进行使用。舵机就是一个需要库函数来支持工作的硬件,所以在写程序之前需要先启用这个库函数。

第二行#define myservoPin 7的目的是将7号端口作为常量定义,如果你的程序需要对某一个端口进行多次使用的话,将其作为一个常量定义可以减少错误

接下来的程序是对舵机进行控制的具体执行语句,首先是Servo myservo;舵机定义语句的写法,前面的Servo是舵机定义的意思,后面的myservo是为舵机起的名字,注意不能用中文字符。myservo.attach(myservoPin);设定舵机接口,括号内是舵机信号线连Arduino端口的编号,这里的myservoPin是常量,就等于7,所以可以这样编写。myservo.write(0)让舵机旋转到设定的角度,括号内是0—180中的任意数字。

请同学们将这个程序上传到Arduino开发板,如果程序正确的话会看到舵机旋转到0°的位置。接着,将myservo.write(0)括号中的0改成任意0—180°之间的角度,再上传程序看看舵机是否转到设定的角度。(www.xing528.com)

现在,我们让舵机模拟一个招手的动作。招手动作的原理就是让舵机转到某个角度之后停顿一段时间,然后转到第二个角度再停顿一段时间。所以,要完成招手的动作至少需要让舵机在两个角度上保持一定的时间。在这里,时间控制可以用delay语句来实现。delay语句可以使舵机保持上面的状态一段时间,括号内填写的时间以毫秒为单位,1秒=1000毫秒,即delay后面括号内的数字1000是1秒。如果想让舵机保持2秒,则需要将delay语句中括号里面的数字改为2000即可。

示例程序如下:

#include<Servo.h>  //引用Servo

#define myservoPin 7 //定义舵机引脚端口号7常量定义

Servo myservo; //舵机定义

void setup(){

 myservo.attach(myservoPin); //设定舵机接口

}

void loop(){

 myservo.write(30); //设置舵机角度为30度

 delay(1000); //停留1秒

 myservo.write(120); //设置舵机角度为120度

 delay(1000); //停留1秒

}

请同学们把这个示例上传到Arduino开发板上,并观察舵机是否在两个角度之间摆动类似招手的动作。除了简单的招手,我们还可以通过对舵机进行程序编写,赋予小曼更多的臂部动作呢!

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈