config_PPU()

描述

设定 Pulses per Unit (PPU),此单位决定了机器移动之单位移动距离,
即欲移动每单位距离,需要输出多少个 pulses。比如说 80 pulses/mm。

语法

machine.config_PPU(axis, pulses_per_mm);

参数

machine:为 Machine物件。

axis:欲设定之运动轴,可为 AXIS_X, AXIS_Y or AXIS_Z。

pulses_per_mm:设定该轴的单位移动距离,需要输出多少 pulses,此例定义为 pulses/mm。

回传

true: 设定成功。
false: 设定错误,代表机器不存在或者在机器启动之后才做设定。
请确保机器存在,并确保对机器做设定必须在启动机器之前。

范例

设定机器的基本参数,并将机器移动至 Home 点。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

#include "Motion86.h"

 

// 产生机器物件,最多可使用 machine 0~2 三台机器,每台机器三轴。

Machine machine(0);

// 步进马达 enable pin。

int EnablePin = 4;

 

void setup() {

 

  while (!Serial);

  pinMode(EnablePin, OUTPUT);

  // 若有需要,可以反转运动轴的运动方向。

  machine.config_ReverseDirection(AXIS_X);

  machine.config_ReverseDirection(AXIS_Y);

  // PPU (pulse per unit) 是一虚拟长度单位,依照不同需求而定。

  // 此例 x 轴的单位长度设定为 80 pulses,对应到实际应用为 1 mm。

  machine.config_PPU(AXIS_X, 80.0);

  machine.config_PPU(AXIS_Y, 80.0);

  machine.config_PPU(AXIS_Z, 1600.0);

  // 设定机器运动的软体极限。

  machine.config_PosLimit(AXIS_X, 0, 300);

  machine.config_PosLimit(AXIS_Y, 0, 200);

  machine.config_PosLimit(AXIS_Z, 0, 300);

  // 设定用来设定 home 点的极限开关所使用的 pin 脚。

  machine.config_HomePins(2, 7, 8);

  // 控制之前,必须启动机器。

  machine.machineOn();

  // 设定预设的进给速率。

  machine.setDefaultFeedrate(400);

  // 启动软体极限。

  machine.enableSoftLimit();

  // 设定回到 home 点的进给速率。

  machine.setHomeSpeed(1000, 1000, 200);

  // 启动步进马达。

  digitalWrite(EnablePin, LOW);

  // 回到由极限开关所定义的 home 点。

  machine.home();

 

}

 

void loop() {

  // 运动控制程式码...

}

See also

computePPU_Belt()
computePPU_LeadScrew()
config_ReverseDirection()


函式库参考主页面

86Duino 参考资料的文本遵循 知识共享署名-相同方式共享 3.0 许可证。参考资料中的程式码范例已发布到公共领域。