beginMpg()

Describe

Enable MPG mode. In this mode, the Machine cannot perform other motion control. It can only use the readback value of the Encoder and move the corresponding output shaft according to the change.

 

Grammar

machine.beginMpg(encoder);

 

Parameter

machine: It is an object of Machine

encoder: It is an Encoder object. If you want to know more, please refer to the Encoder Function Library page. 

 

Return

No return value.

 

Example

Set the basic parameters of the machine and enable MPG mode. The X-axis will be connected when the Encoder value changes.

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"

 

// Generate machine objects. You can use up to three machines, machine 0~2, each with three axes.

Machine machine(0);

 

// Stepper Motor enable pin。

int EnablePin = 4;

 

void setup() {

 

  while (!Serial);

  // In this example, the hand wheel has been installed on Enc3.

  Enc3.begin(MODE_AB_PHASE);

  pinMode(EnablePin, OUTPUT);

 

  // If necessary, the direction of motion of the axis can be reversed.

  // In this example, you need to reverse the direction of the x-axis and the y-axis.

  machine.config_ReverseDirection(AXIS_X);

  machine.config_ReverseDirection(AXIS_Y);

 

  // PPU (pulse per unit) is a virtual unit of length, depending on different needs.

  // In this example, the unit length of the x-axis is set to 80 pulses, which corresponds to 1 mm in actual application.

  machine.config_PPU(AXIS_X, 80.0);

  machine.config_PPU(AXIS_Y, 80.0);

  machine.config_PPU(AXIS_Z, 1600.0);

 

  // Before controlling, the machine must be started.

  machine.machineOn();

 

  // Use Enc3 to trigger Mpg control.

  machine.beginMpg(Enc3);

 

  // Select the target axis to be controlled by the Mpg handwheel.

  machine.setMpgAxis(AXIS_X);

  // machine.setMpgAxis(AXIS_Y);

  // machine.setMpgAxis(AXIS_Z);

 

  // Feed rate in Mpg mode.

  machine.setMpgSpeed(600);

 

  // MpgRatio refers to the ratio of the moving distance of the handwheel to the machine, and the parameter value should be greater than 0.

  machine.setMpgRatio(1);

 

  // Start the stepper motor.

  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

endMpg()
setMpgSpeed()
setMpgAxis()
setMpgRatio()
getJogPos()


 

Library reference

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.