Arduino与Proteus仿真实例-伺服机/舵机驱动(使用Servo库)仿真

伺服机/舵机驱动(使用Servo库)仿真

伺服电机是一种旋转执行器或线性执行器,可以精确控制角度或线性位置、速度和加速度。 它由一个合适的电机组成,该电机耦合到一个用于位置反馈的传感器。 它还需要一个相对复杂的控制器,通常是一个专门设计用于伺服电机的专用模块。

通过向伺服的信号线发送 PWM(脉宽调制)信号来控制伺服电机。 脉冲宽度决定了输出轴的位置。 当您向舵机发送脉冲宽度为 1.5 毫秒 (ms) 的信号时,舵机将移动到中间位置(90 度)。 最小(0 度)和最大(180 度)位置通常分别对应于 1 毫秒和 2 毫秒的脉冲宽度。 请注意,这在不同类型和品牌的伺服电机之间可能略有不同(例如 0.5 和 2.5 ms)。 许多舵机仅旋转约 170 度(甚至仅 90 度),但中间位置几乎总是在 1.5 毫秒。

在这里插入图片描述

1、仿真电路原理图

在这里插入图片描述

2、仿真代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <Servo.h>

Servo servo1,servo2,servo3,servo4;

void setup(){
servo1.attach(2);
servo2.attach(3);
servo3.attach(4);
servo4.attach(5);

}

void loop(){
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(0);
delay(1000);
// Make servo go to 90 degrees
servo1.write(90);
servo2.write(90);
servo3.write(90);
servo4.write(90);
delay(1000);
// Make servo go to 180 degrees
servo1.write(180);
servo2.write(180);
servo3.write(180);
servo4.write(180);
delay(1000);
}

3、仿真结果

在这里插入图片描述

文章来源: https://iotsmart.blog.csdn.net/article/details/121163393