你可以将小型伺服电机直接连接到Arduino来非常精确地控制轴的位置。
因为伺服电机使用反馈来确定轴的位置,你可以非常精确地控制那个位置。因此,伺服电机被用来控制物体的位置,旋转物体,移动机器人的腿,手臂或手,移动传感器等,具有很高的精度。伺服电机体积小,因为它们有内置电路来控制它们的运动,它们可以直接连接到Arduino。
大多数伺服电机有以下三个连接:
- 黑/棕色地线。
- 红色电源线(5V左右)。
- 黄色或白色pwm线。
在这个实验中,我们将电源和接地引脚直接连接到Arduino 5V和GND引脚上。PWM输入将连接到Arduino的数字输出引脚之一。
实验1
硬件要求
- 1 x Towerpro SG90伺服电机
- 1 x Arduino Mega2560
- 3 ×跳线
接线图
伺服电机最好的地方在于它可以直接连接到Arduino。将电机与Arduino连接如下表所示:
- 伺服红线 - 5V Pin Arduino
- 伺服棕色线 - 地面别针Arduino
- 伺服黄线 - PWM(9)PIN Arduino
警告:不要试图用手旋转伺服电机,可能会损坏电机。
代码
程序开始运行时,伺服电机将从0度旋转到180度,一次一度。当电机旋转180度时,它将开始沿另一个方向旋转,直到返回原位位置。
#include // servo library servo servo_test;//初始化连接伺服嵌段= 0的伺服对象;void setup(){servo_test.attach(9);//将伺服信号引脚连接到Arduino} void Loop(){for(角度= 0;角度<180;角度+ = 1)//命令从0度移动到180度{servo_test.write(角度);//命令将伺服旋转到指定的角度延迟(15);延迟(1000);for(角度= 180;角度> = 1;角度-= 5)//命令从180度移动到0度{servo_test.write(角度);//命令将伺服旋转到指定的角度延迟(5);延迟(1000);}
实验2
这个实验与实验1本质上是相同的,除了我们添加了一个位置控制电位器。Arduino读取电位器中间引脚上的电压,并调整伺服电机轴的位置。
硬件要求
- 1 x Towerpro SG90伺服电机
- 1 x Arduino Mega2560
- 1 x 20kΩ电位器
- 1 x面包板
- 6 x跳线电线
接线图
将电路连接为如下图所示:
- 伺服红线 - 5V Pin Arduino
- 伺服棕色线 - 地面别针Arduino
- 伺服黄线 - PWM(9)PIN Arduino
- 电位器引脚1 - 5V引脚Arduino
- 电位器销3 - 地面别针Arduino
- 电位器引脚2 -模拟输入(A0)引脚Arduino
代码
一旦程序启动,旋转电位器应使伺服电机的轴旋转。
#include // servo library servo servo_test;//初始化连接伺服嵌段= 0的伺服对象;int potentio = a0;//初始化a0analog引脚的电位计void setup(){servo_test.attach(9);//将伺服的信号引脚连接到Arduino的PIN9} void Loop(){角= analogread(potentio);//读取0到1023角度之间的电位计值=地图(角度,0,1023,0,179);//将电位器值缩放到0到180之间的伺服伺服值的值值)伺服_test.write(角度);//命令将伺服旋转到指定的角度延迟(5);}
自己试试这个项目吧!得到bom。
我应该使用什么电源?
我使用相同的代码,但我等待5秒做代码…在那5秒里,他发出了噪音,我怎么能使用伺服停止3分钟静音(没有声音)?