#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);
}
|