舵机又称伺服电机是用来控制模型方向的方向舵。它可以把所有接收到的电信号转换成电动机轴上的角位移或角速度输出。
mini舵机是常见的SG90伺服电机。它的最大转动角度为180度,有3条控制线,分别是电源线、地线和信号线。5V电压供电
要注意的是舵机橙色线只能连接在数字口9或10上
- 将控制板的5V连接舵机的红色线
- 棕色线连接控制板GND
- 橙色线连接9脚
我们来尝试怎么运行舵机,输入代码
#include <Servo.h>
Servo myservo;
int pin = A0;
int val;
void setup(){
myservo.attach(9);
}
void loop(){
val = analogRead(pin);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
}
进行连线
开始运行则开始摆动
解读代码
// 引入 Servo 库,该库提供了控制舵机的相关功能
#include <Servo.h>
// 创建一个舵机对象,名为 myservo,后续将使用这个对象来控制舵机
Servo myservo;
//舵机控制信号将从模拟引脚 A0 读取
int pin = A0;
//val用于存储从模拟引脚读取到的值
int val;
// 初始化操作
void setup() {
// 将舵机连接到数字引脚 9
myservo.attach(9);
}
//loop() 循环函数
void loop() {
// 从 A0 读值,存储到变量 val 中
// analogRead() 函数返回的值范围是 0 到 1023
val = analogRead(pin);
// map() 进行映射转换
// 原始范围是 0 到 1023,将其映射到舵机角度范围 0 到 179 度
// 这样就可以将模拟输入的值转换为舵机的角度值
val = map(val, 0, 1023, 0, 179);
// 向舵机发送控制信号,让舵机转动到指定的角度
// 这个角度值由变量 val 决定
myservo.write(val);
// 延时 15 毫秒,给舵机足够的时间转动到指定的角度
// 避免舵机转动过快或出现抖动现象
delay(15);
}