I want to find...

Search

Shares

Table of Content

Machine.circleXY()

[Motion86]

Description

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

This method uses a circular pattern to control the path of the arc, and because it is a complete circular motion, the target position will return to the starting position.

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

Syntax

machine.circleXY(cX, cY);
machine.circleXY(cX, cY, revDir);
machine.circleXY(cX, cY, revDir, feedrate);

Parameters

  • machine: Machine object.
  • cX: The center X coordinate in center mode.
  • cY: the center Y coordinate of the circle in circle mode.
  • revDir: reversing direction, use true when counterclockwise, use false when clockwise, default is clockwise.
  • feedrate: Feedrate, the last recorded feedrate will be used when no parameter is passed.

Returns

bool:

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

Example

Set the basic parameters of the machine and round the machine 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 a circle clockwise with the center of the circle (0, 10, 0).
  machine.circleXY(0, 10, true);
 
  // Move a circle counterclockwise with the center of the circle (0, 10, 0).
  machine.circleXY(0, 10, false);
   
  // Wait until the planned movement is complete.
  while (machine.isMoving());
}

See also


Libraries Reference Home

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

Leave a Comment

Scroll to Top