该板属于 MSP430 超值系列类别,我们可以在其中对所有 MSP430 系列微进行编程。
伺服电机和脉宽调制器:
在详细介绍之前,首先我们应该了解伺服电机。
伺服电机是直流电机、位置控制系统和齿轮的组合。伺服系统在现代世界中有许多应用,因此,它们有不同的形状和尺寸。我们将在本教程中使用SG90伺服电机,它是流行且最便宜的一种。SG90是180度伺服。因此,使用此伺服器,我们可以将轴定位为0-180度。
伺服电机主要有三根线,一根用于正电压,另一根用于接地,最后一根用于位置设置。红线连接到电源,棕色线连接到地,黄线(或白线)连接到信号。
每个伺服电机在不同的PWM频率上运行(本教程中使用的最常见频率是50HZ),因此请获取电机的数据表以检查伺服电机在哪个PWM周期工作。
PWM(脉宽调制)信号的频率可能因伺服电机的类型而异。这里重要的是PWM信号的占空比。根据此负载配给,控制电子设备调整轴。
如下图所示,要使轴移动到 9 点钟,打开口粮必须为 1/18.ie。在 18ms 信号中,1ms 的导通时间和 17ms 的关闭时间。
<
对于要移动到 12 点时钟的轴,信号的导通时间必须为 1.5ms,关闭时间应为 16.5ms。该比率由控制系统在伺服中解码,并据此调整位置。此处的PWM是使用MSP430生成的。
所需材料:
MSP430
SG90 舵机
公-母线
电路图和说明:
在MSP430中,我们有预定义的库,并且 PWM 函数已经在这些库中编写,因此我们不必担心 PWM 值。您只需输入要旋转轴的角度,其余部分由这些库和微操作。
在这里,我们使用引脚6.即P1.4.这是MSP430的PWM引脚。但是您可以使用任何 PIN 码。没有必要将PWM引脚用于伺服,因为所有PWM功能都写在库本身中。
用于控制伺服的头文件是“servo.h”。
我们将使用Energia IDE来编写我们的代码。代码简单易懂。它与Arduino相同,可以在“示例”菜单中找到。
#include
Servo sg90servo; // create servo object to control a servo
int angle = 0; // variable to store the servo position
void setup()
{
Sg90servo.attach(4); // attaches the servo on pin 4 to the servo object
}
void loop()
{
for(angle = 0; angle< 180; angle++) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
Sg90servo.write(angle); // tell servo to go to position in variable angle’
delay(20); // waits 20ms for the servo to reach the position
}
for(angle = 180;angle>=1; angle--) // goes from 180 degrees to 0 degrees
{
Sg90servo.write(angle); // tell servo to go to position in variable angle
delay(20); // waits 20ms for the servo to reach the position
}
}