目录
介绍
伺服电机
舵机,也叫伺服电动机是用于精确控制角度旋转的电动装置。它用于要求精确控制运动的应用,例如控制机械臂的情况。
通过向其施加PWM信号来控制伺服电动机的旋转角度。
通过改变PWM信号的宽度,我们可以改变电机的旋转角度和方向。
电路图
伺服电机与MSP-EXP430G2 TI Launchpad连接
例
使用电位计控制伺服电机的位置。
在这里,我们将使用随Energia IDE一起提供的Servo库。
这个库中有两个例子。我们将使用这两个例子。
要打开旋钮示例,请转到文件>示例> Servo* > Knob
要打开扫描示例,请转到文件>示例>Servo* > Sweep
*您可以在内置示例下方的库中找到示例中的Servo示例。
注意:我们已将示例代码中用于伺服电机的引脚从引脚编号9更改为引脚编号11.下面给出的代码和接口图也相应给出。如果直接从库中打开示例,请进行相应的更改。如果您不想在示例程序中进行更改,也可以更改硬件连接(将伺服连接到引脚9而不是引脚11)。
注意: MSP-EXP430G2 TI Launchpad主板具有512字节的RAM,可轻松上传,尤其是在使用不同库时。有时您需要串行缓冲区足够大以包含所需的数据,并且您必须修改串行库的缓冲区大小。在做这些事情时,我们必须确保代码不会使用超过70%的RAM。这可能导致代码以不稳定的方式工作,有时运行良好并且在其他方面失败。
有些时候RAM使用率可能会超过70%并且代码将完全正常工作,并且即使RAM使用率为65%,代码也无法工作。
在这种情况下,可能需要对缓冲区大小和/或变量进行一些试验和错误。
使用电位计进行伺服位置控制的程序
// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = A3; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(11); // attaches the servo on pin 9 to the servo object
}
余下程序:
使用的功能
1.Servo myservo
- 这将创建一个名为myservo的Servo类对象。
2. myservo.attach(pin)
- 该功能将伺服变量附加到引脚。
- 引脚是伺服器所连接的引脚号。
3. myservo.write(angle)
- 该功能将值写入伺服,从而控制轴的位置。
- 角度可以取0到180之间的值。
4. map(value, fromLow, fromHigh, toLow, toHigh)
- 此功能用于将数字从一个范围映射到另一个范围。
- 这意味着具有“f romLow” 到“f romHigh”之间的值的“ 值”被转换为“ toLow” 到“ toHigh”范围内的等价值。“ fromLow”被映射到“ toLow”等等。
用于扫描伺服轴的程序
// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.
#include <Servo.h>
Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
void setup()
{
myservo.attach(11); // attaches the servo on pin 9 to the servo object
}
余下程序: