1) 说明
* 舵机转到固定角度
* 舵机0°到180°旋转
Servo库常用函数:
* Attach(接口)—设定舵机接口。
* Write(角度)—用于设定舵机旋转的角度,可设定范围0°—180°。
* Read()—用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值
1、servo.attach()
说明
设置Arduino舵机的引脚连接
语法
servo.attach(pin)
参数
pin:连接舵机数据线的Arduino引脚号
2、servo.write()
说明
控制舵机旋转。
对于标准180°舵机,write()函数会将舵机轴旋转到相应的角度位置。
对于连续旋转360°类型的舵机,write()函数可以设置舵机的旋转速度
(0指示舵机向着一个方向全速旋转,180指示舵机向着另一个方向全速旋转,90指示舵机静止不动。)
语法
servo.write(angle)
参数
angle:旋转角度数值
2) 硬件
舵机SG90,Arduino uno/nano,杜邦线
3) 连线
GND(棕色)— Arduino GND
PWM(橙色)— Arduino Digital 9
VCC(红色)—Arduino 5V
4) 代码
舵机旋转到不同位置
#include <Servo.h> #define PIN_SERVO 9 Servo myservo; void setup() {
myservo.attach(9); } void loop() { myservo.write(0); delay(1000);
myservo.write(80); delay(1000); myservo.write(160); delay(1000);
myservo.write(180); delay(1000); }
舵机从舵机0°到180°旋转,再从180°到0°
#include <Servo.h> Servo myservo; // 定义Servo对象来控制 int pos = 0; // 角度存储变量 void
setup() { myservo.attach(9); // 控制线连接数字9 } void loop() { for (pos = 0; pos <=
180; pos ++) { // 0°到180° // in steps of 1 degree myservo.write(pos); // 舵机角度写入
delay(5); // 等待转动到指定角度 } for (pos = 180; pos >= 0; pos --) { // 从180°到0°
myservo.write(pos); // 舵机角度写入 delay(5); // 等待转动到指定角度 } }