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 許可證。參考資料中的程式碼範例已發佈到公共領域。