108个传感器之-舵机sg90(48)

108个传感器之-舵机sg90(48)

介绍

有许多电机可供选择,但为工作选择合适的电机很重要。如果您的项目需要精确定位,伺服电机通常是最佳选择。指示他们指向哪里,他们会为你做的。就这么简单!

它们在各种机器人项目中很有用,例如转向RC型号的前轮或在机器人车上旋转传感器。

工作原理

伺服器是使您可以精确控制身体运动的电动机,因为它们通常移至位置而不是不断旋转。它们很容易连接和控制,因为电动机驱动器是直接构建的。

伺服器包含通过齿轮连接到输出轴的小型直流电动机。输出轴驱动伺服喇叭,还与电位计相连。

servo motor internal structure illustration

电位计提供了控制单元中误差放大器的位置反馈,该放大器将电动机的当前位置与目标位置进行了比较。

为了响应错误,控制单元调整了电动机的当前位置,以使其与所需的位置匹配。

在控制工程中,这种机制被称为伺服力机制,或者简称为伺服。这是一个闭环控制系统,它使用负反馈来调整电动机的速度和方向以达到所需的结果。

servo motor closed loop system block diagram

servo motor working animation

注意: 脉冲与位置之间的确切关系没有标准,因此您可能需要调整草图以调整伺服器的范围。而且,脉搏持续时间在品牌之间可能有所不同。例如,它可能为180度的2.5ms,0度为0.5ms。

引脚连接

pin 引脚连接开发板的 gpio 接口即可:

DEV BOARD Sensor
Pin 2 signal
5 V +V
GND GND

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <Arduino.h>
#include <Servo.h>

int servoPin = A2;
Servo servo;
int angle = 0;

void setup() {
servo.attach(servoPin);
}

void loop() {
for(angle = 0; angle < 180; angle++) {
servo.write(angle);
delay(15);
}

for(angle = 180; angle > 0; angle--) {
servo.write(angle);
delay(15);
}
}

用电位器控制

connecting servo motor to arduino uno for potentiometer control

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Arduino.h>
#include <Servo.h>

int potPin = A0;
int servoPin = A2;
Servo servo;

void setup() {
servo.attach(servoPin);
}

void loop() {
int reading = analogRead(potPin);
int angle = map(reading, 0, 1023, 0, 180); // 映射角度
servo.write(angle);
}

小结

待完善…

108个传感器之-舵机sg90(48)

http://blog.jzxer.cn/20250120/20250120-sg90/

作者

dev

发布于

2025-01-20

更新于

2025-01-07

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×