fbpixel
Etiquetas:
5
(1)

Neste tutorial, veremos a utilização do Escudo CNC V3 para Arduino. Para poder gerir uma máquina como uma CNC ou uma impressora 3D com vários motores passo a passo, é interessante ter uma placa que facilite a ligação dos diferentes elementos da máquina. Este é o papel do escudo CNC.

Material

  • Arduino UNO
  • Escudo CNC V3
  • Condutor Stepper A4988 ou DRV8825 ou SilentStepStick
  • Cabo USBA macho para USB B macho

Como funciona

O Escudo CNC V3 é uma placa de extensão para Arduino UNO ou Mega que pode ser facilmente interligada a controladores de motores passo-a-passo, como o A4988. Também permite conduzir e gerir os elementos necessários ao funcionamento de uma fresadora digital (CNC). Ou seja, paragens finais, ventiladores, etc,

Esquema

O escudo é colocado no microcontrolador Arduino e os motores são ligados directamente aos pinos de saída dos condutores. Pode escolher os condutores que desejar em função da potência dos seus motores e das suas aplicações (A4988, DRV8825, SilentStepStick, TMC).

Os terminais estão disponíveis abaixo de cada condutor para seleccionar a resolução do passo. Estes terminais são ligados aos pinos MS0, MS1 e MS2 dos controladores.

Antes de ligar os motores, certifique-se de que o limitador de corrente em cada controlador corresponde ao motor que está a conduzir.

Código

Para accionar um motor passo-a-passo com Escudo V3 CNC, referimo-nos ao pinout do escudo, que nos dá acesso aos pinos de chamada para enviar comandos ao controlador do motor (DRV8825, A4988 ou SilentStepStick).

const int enPin=8;
const int stepXPin = 2; //X.STEP
const int dirXPin = 5; // X.DIR
const int stepYPin = 3; //Y.STEP
const int dirYPin = 6; // Y.DIR
const int stepZPin = 4; //Z.STEP
const int dirZPin = 7; // Z.DIR

int stepPin=stepYPin;
int dirPin=dirYPin;

const int stepsPerRev=200;
int pulseWidthMicros = 100;  // microseconds
int millisBtwnSteps = 1000;

void setup() {
  Serial.begin(9600);
  pinMode(enPin, OUTPUT);
  digitalWrite(enPin, LOW);
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
 
  Serial.println(F("CNC Shield Initialized"));
}

void loop() {
  Serial.println(F("Running clockwise"));
  digitalWrite(dirPin, HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for (int i = 0; i < stepsPerRev; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(pulseWidthMicros);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(millisBtwnSteps);
  }
  delay(1000); // One second delay

  Serial.println(F("Running counter-clockwise"));
  digitalWrite(dirPin, LOW); //Changes the rotations direction
  // Makes 400 pulses for making two full cycle rotation
  for (int i = 0; i < 2*stepsPerRev; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(pulseWidthMicros);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(millisBtwnSteps);
  }
  delay(1000);
}

Para testar o funcionamento do Shield e dos motores, não utilizamos nenhuma biblioteca em particular. Contudo, se quiser utilizar funcionalidades mais avançadas pode utilizar a biblioteca AccelStepper ou o firmware GRBL V0.9.

Resultado

Assim que o código tiver sido carregado e o sistema ligado, deverá ver o motor ligado ao condutor em Y rodar uma volta no sentido dos ponteiros do relógio e duas voltas no sentido anti-horário. Se não for este o caso, provavelmente tem um problema de ligação.

Também é possível que o rastilho no quadro esteja danificado. Pode substituí-lo por um fio de chumbo.

Aplicações

  • Faça o seu próprio CNC ou gravador a laser
  • Fazer um cortador
  • Conduzir até três motores passo-a-passo de forma independente

Fontes

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?