BGA станция проблема с шаговыми моторами

Нет ответов
wowan76
Offline
Зарегистрирован: 17.04.2018

Здравствуйте я тут новый,

 

собираю паяльную станцию для себя. достался мне настольный робот от SONY

хочу сделать позицианирование по 3м осям через джойстик. на каждую ось по контролеку и ардуино.

прошу помощи не могу осилить управление шаговым двигателем, двигается но както странно и нет нормалного ускорения.

когда к джойстику неприкасаешся, то мотор находится не в активности *чтоб непищало и не грелось.

Контролер мотора у меня такой

https://produto.mercadolivre.com.br/MLB-925961841-driver-tb6600-para-mot...

незнаю вроде должно работать, но нет

 

Большое спасибо

wowan76

 

 

-----------------------------------------------

// Librarys

#include "AccelStepper.h"
#include "MultiStepper.h"

// AccelStepper Setup
AccelStepper stepperX(1, 5, 6);   // 1 = Easy Driver interface
                                  // MEGA Pin 5 connected to STEP pin of Easy Driver
                                  // MEGA Pin 6 connected to DIR pin of Easy Driver
                                  
//--------------------------------------------------------------------------------
// Axis Limits setup
//--------------------------------------------------------------------------------

#define X_pin A0    // MEGA Pin A0 connected to joystick X axis
#define LimitX01_pin 8      // MEGA Pin 8 connected to LimitX switch out
#define LimitX02_pin 9      // MEGA Pin 9 connected to LimitX switch out
#define motor_sleepX 7      // MEGA Pin 7 connected to motorsleep X

void setup() {

//--------------------------------------------------------------------------------
// Axis move setup
//--------------------------------------------------------------------------------
 
   pinMode(LimitX01_pin, INPUT);
   pinMode(LimitX02_pin, INPUT);
   pinMode(motor_sleepX, OUTPUT);
   
  // Set Max Speed and Acceleration of each Steppers
  stepperX.setMaxSpeed(2500.0);      // Set Max Speed of X axis
  stepperX.setAcceleration(100.0);  // Acceleration of X axis
            }

void loop() {

//--------------------------------------------------------------------------------
// Axis move
//--------------------------------------------------------------------------------

  switch (analogRead(X_pin)) {
                             
     case 0 ... 460:
       digitalWrite (motor_sleepX,HIGH);
       break;
       
     case 540 ... 1100:
       digitalWrite (motor_sleepX,HIGH);
       break;
                            
     default:
       digitalWrite (motor_sleepX,LOW);
       
       break;
  }

  delay;

  if (analogRead(X_pin) > 540) {  //  If joystick is moved Left   
     //if (!digitalRead(LimitX01_pin)) {}  // check if LimitX01 switch is activated
    if (digitalRead(LimitX01_pin) == HIGH ) {}  // check if LimitX01 switch is activated
    
         else {  //  if LimitX switch is not activated, move motor clockwise
         stepperX.setSpeed(analogRead(X_pin) - 500);
              stepperX.runSpeed();
      Serial.println (analogRead(X_pin) - 500);
    }      
  }

  if (analogRead(X_pin) < 460) {  // If joystick is moved right
      
    //if (!digitalRead(LimitX02_pin)) {}  // check if LimitX02 switch is activated
    if (digitalRead(LimitX02_pin) == HIGH) {}  // check if LimitX02 switch is activated
    
       else {  //  if LimitX switch is not activated, move motor counter clockwise
      // Set Max Speed and Acceleration of each Steppers
         
            stepperX.setSpeed(analogRead(X_pin) - 500);
            stepperX.runSpeed();
          Serial.println(analogRead(X_pin) - 500);
    }
     
  }

}