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
computePPU_Belt()
computePPU_LeadScrew()
config_ReverseDirection()
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.