Официальный сайт компании Arduino по адресу arduino.cc
BGA станция проблема с шаговыми моторами
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здравствуйте я тут новый,
собираю паяльную станцию для себя. достался мне настольный робот от 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);
}
}
}