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 點。

 
#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


函式庫參考主頁面

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.