在这个项目中,我们将看到如何用一个电位器来驱动一个伺服电机。
使用一个模拟输入引脚,我们可以读取电位器的旋转,数值范围从0到1023。
我们将使用这些值来使伺服电机从0°旋转到180°。
首先我们创建电路,然后编写程序。
将电源引脚5V 和GND 与面包板上的线路+ 和- 连接。

然后选取这些信号,将其连接到电位器的输入引脚。

将输出引脚连接到模拟I/O引脚A0 。
接下来,连接伺服电机。将棕色的线连接到0V,红色的连接到5V,橙色的连接到引脚9 。


现在让我们切换到Arduino IDE来编写程序。
我们需要先获取电位器的输入。
void setup() {
Serial.begin(9600);
}
void loop() {
int value = analogRead(A0);
Serial.println(value);
}
把这个程序上传到Arduino,你应该看到在串行显示器上打印出一个从0到1023的输出。
现在我们需要将这组0-1023的数值重新映射为0-180,也就是我们要反馈给伺服电机的数值。
我们使用map() 函数来做。
value = map(value, 0, 1023, 0, 180);
现在我们要使用一个库。
在Arduino IDE的Sketch 菜单中,选择Include Library ,然后选择Servo 。

这将在文件的顶部添加一个#include <Servo.h> 行。
伺服库是一个内置的库,要想有更多关于这个库的信息,你可以打开菜单Tools ,Manage libraries... 。
这将打开库管理器。

在框中搜索 "servo",你应该看到它出现了。

点击 "更多信息 "链接,这将在你的浏览器中打开页面www.arduino.cc/reference/e…。

这是获得任何库的信息的方法,不仅仅是这个库,知道在哪里可以获得更多信息是很有用的。
该页面列出了一些使用信息,库所暴露的方法,以及一些例子。

Arduino的好处是它全部是开源的。在这种情况下,你可以在github.com/arduino-lib… 找到库的源代码,所以你可以编写你自己的修改版本,或者只是了解它在引擎盖下是如何工作的。
用attach() ,我们告诉Servo要使用哪个端口。
通过write() ,我们将伺服电机移动到所需的角度,作为参数指定,从0到180。
但首先我们需要声明一个Servo对象。我们在setup() 函数之前这样做,用Servo myservo; 。
#include <Servo.h>
Servo myservo;
然后在setup() ,我们将伺服机连接到I/O引脚9。
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(9);
}
最后在loop() ,我们调用myservo.write() ,传递一个从0到180的值。
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(9);
}
void loop() {
int value = analogRead(A0);
value = map(value, 0, 1023, 0, 180);
myservo.write(value);
}