0°

(二十)msp430进阶:舵机与MSP-EXP430G2 TI Launchpad连接

介绍

(二十)msp430进阶:舵机与MSP-EXP430G2 TI Launchpad连接

伺服电机

舵机,也叫伺服电动机是用于精确控制角度旋转的电动装置。它用于要求精确控制运动的应用,例如控制机械臂的情况。

通过向其施加PWM信号来控制伺服电动机的旋转角度。

通过改变PWM信号的宽度,我们可以改变电机的旋转角度和方向。

 

电路图

(二十)msp430进阶:舵机与MSP-EXP430G2 TI Launchpad连接

伺服电机与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 
} 

余下程序

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论