文章插图
文章插图
arduino学习笔记13-利用串口控制舵机
舵机的旋转不像普通电机那样只是转圈圈 , 它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来 。舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的 。舵机比较多的用于对角度有要求的场合 , 比如机器人、摄像头、智能小车前置探测器 , 需要在某个范围内进行监测的移动平台 。
注意:舵机线一种是:红、黑、黄(红色连接 Vcc、黑色连接 GND、黄色连接信号 S)
还有较为常见的一种是:棕、红、橙(棕色连接 GND、红色连接 Vcc、橙色连接信号 S)
一、实验现象
舵机在在0~180°之间来回转动 。
【Arduino舵机控制板 arduino舵机控制函数】二、实验器材:控制板、舵机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让舵机转到指定位置
}
}