舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的。
舵机比较多的用于对角度有要求的场合,比如机器人、摄像头、智能小车前置探测器,需要在某个范围内进行监测的移动平台。
注意:舵机线一种是:红、黑、黄(红色连接 Vcc、黑色连接 GND、黄色连接信号 S)还有较为常见的一种是:棕、红、橙(棕色连接 GND、红色连接 Vcc、橙色连接信号 S)一、实验现象舵机在在0~180°之间来回转动。
二、实验器材:控制板、舵机1 个、杜邦线。
三、实验所用函数及语句Ardruino也提供了<Servo.h>库,让我们使用舵机变得更方便了。
(1)#include<Servo.h> 载入 Servo.h 库文件。
(2)Servo myservo; 建立一个舵机对象,名称为 myservo 。
(3)myservo.attach(9); 将引脚 9 上的舵机与舵机对象连接起来。
attach 函数连接一个舵机对象到指定的引脚上,attch 函数可以有 1 或 3 个参数。
如果使用 3 个函数,第一个参数表示引脚,第二个参数表示最小角度(0度)的脉冲宽度,单位是微秒(默认是 544),第三个参数表示最大角度(180度)的脉冲宽度,单位是微秒(默认是2400)。
通常情况下,只需要设置舵机引脚,忽略第二和第三个参数。
(4)myservo.write(pos); 写角度到舵机,让舵机转动到指定角度。
注:以上语句的书写格式均为“舵机变量名.具体语句()”例如:myservo.attach(9)。
下面就来具体分析一个小程序:#include <Servo.h>//定义头文件,这里有一点要注意,可以直接在Arduino软件菜单栏单击Sketch>Importlibrary>Servo,调用Servo函数,也可以直接#include <Servo.h>,但是在输入时要注意在#include 与<Servo.h>之间要有空格,否则编译时会报错。
四、实验电路五、编写程序#include <Servo.h> // 声明调用Servo.h库Servo myservo; // 创建一个舵机对象int pos = 0; // 变量pos用来存储舵机位置void setup() {myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来, 对象名.函数名();不要忘了中间的“.”}void loop() {for(pos = 0; pos < 180; pos += 1){ // 舵机从0°转到180°,每次增加1°myservo.write(pos); // 给舵机写入角度delay(15); // 延时15ms让舵机转到指定位置}for(pos = 180; pos>=1; pos-=1) { // 舵机从180°转回到0°,每次减小1°myservo.write(pos); // 写角度到舵机delay(15); // 延时15ms让舵机转到指定位置}}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)