codigo fonte para arduino controlando tres motores de passo.

Ola,

estou tentando construir um CNC, com arduino porem sou iniciante no arduino e não consigo algem pode me ajudar .

Carlos 

Exibições: 8478

Responder esta

Respostas a este tópico

 

Olá,  Carlos

 

Estou montando tb uma CNC, mais simples possível.  Se quiser trocar ideias, estou disponível.

 

Segue o código para a LIB AccelStepper.

 

 

// MultiStepper.pde

// -*- mode: C++ -*-

//

// Shows how to multiple simultaneous steppers

// Runs one stepper forwards and backwards, accelerating and decelerating

// at the limits. Runs other steppers at the same time

//

// Copyright (C) 2009 Mike McCauley

// $Id: HRFMessage.h,v 1.1 2009/08/15 05:32:58 mikem Exp mikem $

#include <AccelStepper.h>

// Define some steppers and the pins the will use

 

AccelStepper stepper1; // Defaults to 4 pins on 2, 3, 4, 5

AccelStepper stepper2(4, 6, 7, 8, 9);

AccelStepper stepper3(2, 10, 11);

 

void setup() {     

      stepper1.setMaxSpeed(200.0);

      stepper1.setAcceleration(100.0);

      stepper1.moveTo(24);

      stepper2.setMaxSpeed(300.0);  

      stepper2.setAcceleration(100.0);

      stepper2.moveTo(1000000);  

      stepper3.setMaxSpeed(300.0);   

      stepper3.setAcceleration(100.0);

      stepper3.moveTo(1000000);

}

void loop() {     // Change direction at the limits    

       if (stepper1.distanceToGo() == 0)  stepper1.moveTo(-stepper1.currentPosition());   

      stepper1.run();   

      stepper2.run();    

     stepper3.run();

}

 

https://github.com/koppi/simduino/tree/master/Examples/01-AccelStepper

 

http://www.pjrc.com/teensy/td_libs_AccelStepper.html

 

 

Abs,

 

Fernando

 

 

 

Ok obrigado
Estou iniciando o projeto agora , pergunto e possível usar este código no arduino.

 

Sim, este código é para o arduino, no meu caso UNO.

 

Testei em 2 motores e funciona perfeitamente, claro usando a LIB.

 

Mas para a CNC o negocio é mais complicado, tem vários post no neste fórum que falam de como usar o arduino para CNC.

 

Eu usarei um drive (via paralela) para controlar os motores e MACH3

 

Estou no ponto de instalação da tração no eixo "X", não tenho a menor "ideia" se meu projeto vai funcionar ou não, rsrs. Mas como é só diversão...

 

Levei mais de 30 dias estudando vários projetos, dos mais complexos ao mais simples, que na verdade a intenção é gastar pouco e depois de concluído e funcionando é confeccionar peças e criar "conhecimento" para uma "3d".

 

Qualquer coisa e eu poder ajudar, é só perguntar, se não estiver ao meu conhecimento tem muita gente aqui com muito mais experiência e conhecimento.

 

 

Fernando

Bom dia .

Obrigado bom , estou tentando o mesmo objeivo se você não se encomodar gostaria de esclarecer duvidas.

aproveito para perguntar se quando vc, informa que usando a LIB, vc, quer dizer usando a biblioteca LIB, e isso . .

Ola.

 

Sim. A biblioteca que vem no artuino (IDE STEPPER), não consegue movimentar + de um motor ao mesmo tempo, então tem a "AccelStepper.h" que consegue.

 Os links tem alguns exemplos do uso da LIB.

 Fuçando na internet tem até vídeo de impressora 3D funcionando com servo-motor 360°, segundo os "especialistas", os servos não tem precisão para este uso, mas pelo vídeo, funciona!

 Pode perguntar!

 Abs,

 

Fernando

Fernando .

Vc, teria um exemplo de programa em arduino ,controlando um motor de passo ..

porem o motor teria que ser accionado por um botão .

O objetivo e aperta-se o botão escrito no código fonte e o arduino movimenta o motor de passo x vezes e depois retorna ao ponto inicial , o programa ate consigo , porem não consigo inseri o botão no código.

Carlos

Ola

Segue um exemplo, para 1 motor de passo, 2 botões e 1 led.

 

Pressionando o botão 1 acende o LED e o motor gira no sentido horário, o segundo botão acende o LED e faz girar para o sentido anti-horário.

 

 

\\

\\ 1 motor de passo, 2 botões e 1 led

\\

#include <Stepper.h>  //Biblioteca já disponível na IDE do Arduino

 #define STEPS 100  // max 100  

const int steps=100;  //Número de passos para o motor  

int buttonState1=0;

int buttonState2=0;  

Stepper stepper(STEPS, 0, 2, 1, 3); \\ sequencia de acionamento do motor de passo

void setup()  {    

stepper.setSpeed(200);    //Velocidade da rotação do motor (RPM)

pinMode(8,INPUT);   //Botão 1  

pinMode(9,INPUT);   //Botão 2

pinMode(12,OUTPUT);   //LED

 }

void loop()  {

       buttonState1=digitalRead(8);

       buttonState2=digitalRead(9);  

        if(buttonState1==LOW)   //Gira para um lado  {    

            digitalWrite(12,HIGH); \\ Acende o LED

            stepper.step(steps);  }  \\ Sentido horario

        else if(buttonState2==LOW)  //Gira para o outro lado  {    

             digitalWrite(12,HIGH); \\ Acende o LED

            stepper.step(-steps);  }  Sentido anti-horário

        else   //Fica parado  {    

                  digitalWrite(12,LOW);  \\ Desliga o LED  

                  stepper.step(0); \\ Para o Motor

         }

 }

Espero não ter "misturado" nada, rsrs

 

Fernando

OK

Obrigado 

Fernando .

Oi Carlos

Não sei qual seu nível de conhecimento, mas vc sabe que precisa de "driver" para ligar o motor de passo no arduino ?

Fernando

 

Fernando boa noite .

A questão Electrónica tudo bem já tenho os draiver , comprei draiver para 3 amper, minha dificuldade e o programa ainda estou aprendendo, mas gostaria de manter este contato esta sendo bastante útil.

Carlos

 

FCaldeira,

Tocaram num assunto que me interessa muito. Seria possivel enviar o esquema sobre o programa para 1 motor de passo, 2 botões e 1 led?

 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço