Machine.arcYZ_Theta()

[Motion86]

描述

Use clockwise arcs or counterclockwise arcs to draw a circle. The direction is viewed from the positive direction of the X-axis where the circular motion occurs.

This method uses the circle center mode to control the arc path and uses the positive and negative values of the rotation angle to select clockwise or counterclockwise.

For more information on the various motion methods, see the Motion Methods explanation page.

語法

machine.arcYZ_Theta(cY, cZ, theta);
machine.arcYZ_Theta(cY, cZ, theta, feedrate);

參數

  • machine: The machine object.
  • cY: The center Y coordinate of the circle in center mode.
  • cZ: The center Z coordinate in center mode.
  • theta: the angle to be rotated, positive value is used when clockwise, negative value is used when counterclockwise.
  • feedrate: Feedrate, the last recorded feedrate will be used when no parameter is passed.

回傳

bool:

  • true: The machine exists and was created successfully.
  • false: The machine does not exist or failed to be created.

範例

Set the basic parameters of the machine and move the machine in an arc of 90 degrees in the XY plane.

#include "Motion86.h"
 
// Generate machine objects, up to machine 0~2 three machines, each machine has three axes. 
Machine machine(0);
 
// Stepper motor enable pin.
int EnablePin = 4;
 
void setup() {
  while (!Serial);
  pinMode(EnablePin, OUTPUT);
 
  // If necessary, the motion direction of the motion axis can be reversed.
  // In this example, the direction of x-axis and y-axis should be reversed.
  machine.config_ReverseDirection(AXIS_X);
  machine.config_ReverseDirection(AXIS_Y);
 
  // PPU (pulse per unit) is a virtual length unit, depending on different requirements.
  // In this example, the unit length of x-axis is set to 80 pulses, which corresponds to 1 mm in real application.
  machine.config_PPU(AXIS_X, 80.0);
  machine.config_PPU(AXIS_Y, 80.0);
  machine.config_PPU(AXIS_Z, 1600.0);
 
  // The machine must be started before control.
  machine.machineOn();
  machine.setDefaultFeedrate(400);
 
  // Start the stepper motor.
  digitalWrite(EnablePin, LOW);
}
 
void loop() {
  // Move 90 degrees clockwise to (0, 10, 10).
  machine.arcYZ_Theta(0, 10, HALF_PI, true);
 
  // Move 90 degrees counterclockwise to (0, 0, 0).
  machine.arcYZ_Theta(0, 10, HALF_PI, false);
   
  // Wait until the planned motion is completed.
  while (machine.isMoving());
}

參考


函式庫參考主頁面

86Duino 參考的文本是根據 Creative Commons Attribution-ShareAlike 3.0 License,部分文本是從 the Arduino reference 修改的。 參考中的代碼示例已發佈到公共領域。

發表評論

上部へスクロール