setMpgRatio()

描述

設置在 MPG 模式下,Encoder 變化量與距離之倍率。

 

语法
machine.setMpgRatio(rate);

 

参数

machine:为 Machine物件。

rate:Encoder 变化量与距离之倍率,该值应大于 0。

 

回传

无回传值。

 

范例
设定机器的基本参数,并启用 MPG 模式,Encoder 值变动时会连动 X 轴。

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

44

45

46

47

48

49

50

51

52

53

54

55

56

57

#include "Motion86.h"

#include "Encoder.h"

 

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

Machine machine(0);

 

// 步进马达 enable pin。

int EnablePin = 4;

 

void setup() {

 

  while (!Serial);

  // 在此范例中,手摇轮已经被安装上 Enc3。

  Enc3.begin(MODE_AB_PHASE);

  pinMode(EnablePin, OUTPUT);

 

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

  // 在此范例中,需要反转 x 轴和 y 轴的方向。

  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.machineOn();

 

  // 使用 Enc3 触发 Mpg 控制。

  machine.beginMpg(Enc3);

 

  // 选择要通过 Mpg 手轮控制的目标轴。

  machine.setMpgAxis(AXIS_X);

  // machine.setMpgAxis(AXIS_Y);

  // machine.setMpgAxis(AXIS_Z);

 

  // Mpg 模式下的进给速度。

  machine.setMpgSpeed(600);

 

  // MpgRatio 是指手轮与机器之移动距离比,参数值应大于0。

  machine.setMpgRatio(1);

 

  // 启动步进马达。

  digitalWrite(EnablePin, LOW);

}

 

void loop() {

  Serial.print("Mpg position = ");

  Serial.print(machine.getJogPos(AXIS_X));

  Serial.print(", ");

  Serial.print(machine.getJogPos(AXIS_Y));

  Serial.print(", ");

  Serial.println(machine.getJogPos(AXIS_Z));

  delay(500);

}

 

See also

beginMpg()
endMpg()
setMpgSpeed()
setMpgAxis()
getJogPos()


 

函式库参考主页面

86Duino 参考资料的文本遵循知识共享署名-Creative Commons Attribution-ShareAlike 3.0 License。参考资料中的代码示例已发布到公共领域。