电子说
本文非常适合初学者,因为它很容易上手,并且为他们建立有趣的项目(例如通常使用伺服器的机器人)奠定了基础。伺服电机(Servo Motor)是高转矩电机,由于其在机器人和其他一些应用中的通用性,轻松控制其旋转。伺服电机也称为舵机,它带有齿轮输出轴,该齿轮输出轴可以通过电气控制,每次旋转一度。为了控制起见,与普通的直流电动机不同,伺服电机通常在两个电源引脚(VCC和GND)的旁边有一个引脚,即信号引脚。信号引脚用于控制伺服电机,将其轴旋转至任何所需角度。
在本篇文章中,我们将使用非常流行的SG90伺服电机,我们的目标是将伺服电机从一个角度旋转到另一个角度。伺服电机的电流要求很高,因此当在Arduino上使用多个伺服电机时,需要将其电源连接到外部电源,因为Arduino可能无法提供伺服电机所需的电流,这一点很重要。由于在本文中我们将仅使用一个伺服电机,因此可以通过Arduino为它供电。
所需的组件
● SG90伺服电机
● Arduino Uno开发板
● 连接导线
● 面包板
原理图
该项目的原理图非常简单,因为我们只需将伺服电机连接到Arduino,伺服电机通常具有三个引脚,其中包括VCC、GND和Signal引脚。Signal引脚是用于将控制信号从微控制器馈送到伺服电机,以使伺服电机旋转到特定角度。如下图所示,将伺服器连接至Arduino。
Signal引脚连接到Arduino的数字引脚8,因为它是PWM引脚。伺服方向以PWM脉冲方式从微控制器发送到伺服电机。完成所有连接后,我们现在就可以编写项目代码了。
代码
本篇文章的代码非常容易,这要归功于Arduino团队开发的非常全面而简洁的Serve.h库,该库便于在Arduino项目中使用伺服电机。该库使使用单个命令轻松地将伺服电机旋转到不同的角度。
该库是预先安装在Arduino IDE中的,无需我们下载和安装。首先,我们在代码中包含将要使用的库(在本例中为Serve.h库)。
#include
接下来,我们创建该库的一个对象,以在整个代码中用作控制伺服电机的参考。
Servo servo;
完成此操作后,我们开始void setup()函数。首先,将创建的伺服对象附加到微控制器的引脚D8,然后将伺服电机旋转至零度。
void setup() {
servo.attach(8);
servo.write(angle);
}
完成此操作后,我们就可以按照所需的任何方向移动伺服电机了,我们将在void loop()函数中执行此操作。通过使用Servo.h库,要将伺服电机旋转到所需的角度,我们要做的只是将所需角度作为参数传递给Servo.write()函数。为了证明这一点,使用了一个for循环将伺服电机沿一个方向旋转几个角度,并使用另一个循环将伺服器旋转回其起点。
void loop()
{
// scan from 0 to 180 degrees
for(angle = 10; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 180; angle > 10; angle--)
{
servo.write(angle);
delay(15);
}
}
以下是本文的完整代码:
#include
Servo servo;
int angle = 10;
void setup() {
servo.attach(8);
servo.write(angle);
}
void loop()
{
// scan from 0 to 180 degrees
for(angle = 10; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 180; angle > 10; angle--)
{
servo.write(angle);
delay(15);
}
}
效果演示
复制上面的代码,然后上传到Arduino开发板,对伺服电机进行设置,一段时间后,您应该看到伺服电机开始转动。
以上就是本文的所有内容,上面的代码可以通过多种方式扩展,以用于涉及伺服电机的不同项目中,您将使用伺服电机制造出什么很棒的东西?
全部0条评论
快来发表一下你的评论吧 !