这次我们来继续升级,自己电位器手动控制舵机旋转角度~
按照下图接线
- 电位器外侧两个引脚分别接5V与GND
- 电位器中间引脚的接模拟口A0用于做输入信号
- 舵机黄线接引脚9
- 棕线接地,红线接5V
导入代码
#include <Servo.h> //调用Servo库
Servo myservo; // 创建一个舵机对象
int pin = 0; // 连接到模拟口0
int val; // 变量val用来存储从模拟口0读到的值
void setup() {
myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来
}
void loop() {
val = analogRead(pin); // 从模拟口0读值,并通过val记录
val = map(val, 0, 1023, 0, 179); // 通过map函数进行数值转换
myservo.write(val); // 给舵机写入角度
delay(15); // 延时15ms让舵机转到指定位置
}
补充解释:将引脚9上的舵机与声明的舵机对象连接起来myservo.attach(9)
这句话不太好理解,我们来看一下什么意思?
- 把这个过程想象成你要控制一个机器人手臂(舵机就相当于机器人手臂),而你手里有一个遥控器(代码中的舵机对象),但一开始遥控器和机器人手臂并没有连在一起,不能直接控制。
- 把遥控器(
myservo
)和机器人手臂(连接在引脚 9 的舵机)之间建立了一种联系,让遥控器能够控制机器人手臂的动作。
电位器控制舵机
一起试试吧~