UNO и контроллер на TB6560AHQ

anon
Offline
Зарегистрирован: 23.05.2013

добрый день.
в наличии uno,  биполярный шаговый двигатель (2.5А)
и вот такой драйвер для него на Toshiba TB6560AHQ. (http://www.ebay.com/itm/CNC-Router-Axis-3A-TB6560-Stepper-Motor-Drivers-...)

 

 

 

 

 

 

 

 

 

 

 

 

входы (-) посажены на землю, EN+, CW+, CLK+ -на 5, 4 и 3й выводы ардуины соответственно

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

скорее всего так

EN подать 1

CW подать 1

CLK постоянно подавать тики и мотор будет крутиться. чем чаще тики тем быстрее будет крутится

если на CW подать 0, а на CLK также тики мотор будет крутится в другую сторону

 

 

anon
Offline
Зарегистрирован: 23.05.2013

т.е. как я понял либами типа accel stepper управлять не получится?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а зачем тут либа вам? каждый тик означает шаговик повернется на 1 шаг. за счет этого точное позиционирование

anon
Offline
Зарегистрирован: 23.05.2013

сорри, я в программировани 0) можете пример кода дать, чтобы, скажем подвинуть его на 200 шагов (оборот)?

vvadim
Offline
Зарегистрирован: 23.05.2012

Устанавливаете библиотеку AccelStepper и играйтесь с примерами скока угодно

anon
Offline
Зарегистрирован: 23.05.2013

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

vvadim
Offline
Зарегистрирован: 23.05.2012

Значит надо учиться - гуглиш подключение шаговика, драйвера и ардуины, изучаешь схему, всё соединяешь, заливаешь пример и будет тебе счастье. 

Поверь, это не трудно.

anon
Offline
Зарегистрирован: 23.05.2013

не подскажите, как тогда в библиотеке объявить такое подключение драйвера?
гуглить умею) на драйвере входы - вкл, шаг, направление. если можно их в accel stepper объявить - круто, но я не знаю как.  заливал этот скетч - не робит.
 

#include <AccelStepper.h>

#define STEP 3
#define DIR  4
#define EN   5

AccelStepper stepper(1, STEP, DIR);

void setup()
{
  pinMode(EN, OUTPUT);
  digitalWrite(EN, 1);
  stepper.setMaxSpeed(300.0);
  stepper.setAcceleration(100.0);
  stepper.moveTo(100);
}
 
void loop()
{
  if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition());
  stepper.run();
}

 

vvadim
Offline
Зарегистрирован: 23.05.2012

Ну и не плохо было бы почитать описание драйвера, какие переключатели что делают. Ну чтобы потом глупых вопросов не задавать

anon
Offline
Зарегистрирован: 23.05.2013

глупых вопросов не бывает. а зачем мне микрошаг и ток движка? - их я правильно выставил

vvadim
Offline
Зарегистрирован: 23.05.2012

anon пишет:

 а зачем мне микрошаг и ток движка? - их я правильно выставил

а кто тебя знает. 

ток движка нужно правильно выставить (уже написал - почитай описание драйвера)

и твоего кода в примерах нет. поиграйся сначала с примерами

 

anon
Offline
Зарегистрирован: 23.05.2013

переключатели я выставил правильно - все проверил. код я нашел на прасторах необъятной. дело в том, что входов на драйвере - 3, EN (включение) CLK (шаг) и СW (направление)
и я не знаю, как объявить такое подключение в библиотеке accel stepper. в примере это сделано так

#include <AccelStepper.h>

#define STEP 3
#define DIR  4
#define EN   5

AccelStepper stepper(1, STEP, DIR);

не выходит

примеры не работают, т.к. там везде 4х проводное подключение.

Пробую такой скетч - ничего

void setup()
{
  pinMode(8, OUTPUT);
  digitalWrite(8, 1);
  pinMode(4, OUTPUT);
  digitalWrite(4, 1);
  pinMode(2, OUTPUT);
}
 
void loop()
{
  digitalWrite(2, 1);
  delay(10);
  digitalWrite(2, 0);
  delay(100);
}

 

vvadim
Offline
Зарегистрирован: 23.05.2012

Не хочеш гуглить и читать. У тебя самый обычный драйвер. Подаёшь +5 вольт на EN, 

#include <AccelStepper.h>

#define STEP 3
#define DIR  4

AccelStepper stepper(1, STEP, DIR);

Вперёд с примерами из библиотеки.

ПОМНИ, сначала подключи мотор, потом подавай питание. НЕ отключай-подключай шаговик под напряжением - спалишь микросхему драйвера.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

драйвер этот кстати хреновый. много проблемм у людей с этой микрухной

anon
Offline
Зарегистрирован: 23.05.2013

подключил как указано тут -

 

 

step - 2 пин, direction - 3й, enable - 4й

 

заливаю этот скетч

#include <AccelStepper.h>

 
#define STEP 2
#define DIR  4
	 
AccelStepper stepper(1, STEP, DIR);
void setup()
{  
   stepper.setMaxSpeed(1000);
   stepper.setSpeed(50);	
}

void loop()
{  
   stepper.runSpeed();
}

вообще ничего. мотор руками не провернуть, хотя в обычном состоянии крутится

anon
Offline
Зарегистрирован: 23.05.2013

чем посоветуете тогда управлять 2,5 А nema 23?

vvadim
Offline
Зарегистрирован: 23.05.2012

Тем, что у тебя есть, только надо читать и учиться. Тебе написали на EN +5 вольт.  STEP это должен быть пин с шимом, а что у тебя? На уно шим на 3, 5, 6, 9, 10, 11. 

Правильно подключи.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

пока можно попробовать так

#define STEP 2
#define DIR  3
#define EN  4
#define delay_step  10

void setup(){  
  pinMode(STEP, OUTPUT);
  pinMode(DIR, OUTPUT);
  pinMode(EN, OUTPUT);	
}

void loop(){  
  digitalWrite(EN, 1);
  cicle(1, 500);
  delay(500);
  cicle(0, 500);
  delay(500);
}

void cicle(boolean napr, int steps){
  digitalWrite(DIR, napr);
  for (int i=0;i<steps;i++){
    digitalWrite(STEP, 1);
    delay(delay_step);
    digitalWrite(STEP, 0);
    delay(delay_step);
  }
}

 

vvadim
Offline
Зарегистрирован: 23.05.2012

jeka_tm пишет:

драйвер этот кстати хреновый. много проблемм у людей с этой микрухной

Вот на хреновом и пусть тренируется.  Устарелая и капризная микруха. Я не использовал, но много читал про неё и чуть не купил

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

anon
Offline
Зарегистрирован: 23.05.2013

подключил, step на 3й

	#define STEP 3
	#define DIR  4
	#define EN  2
	#define delay_step  10

ничего. лампочки на драйвере горят - питание и run, но мотор стоит. обмотки подключил - одну в-в+, вторую а-а+, питание на драйвер от комповского БП 12V

vvadim
Offline
Зарегистрирован: 23.05.2012

Ты на EN +5 вольт подал?

anon
Offline
Зарегистрирован: 23.05.2013

ага

void loop(){ 
	  digitalWrite(EN, 1);
	  cicle(1, 500);
	  delay(500);
	  cicle(0, 500);
	  delay(500);

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

на en в коде подается 5В

проверьте подключение еще раз. проверьте питание не вырубается ли блок питания. должно работать. там такой принцип управления. все просто. вот какие джамперы вы выставили это еще под вопросом. можно там можно менять тип сигнал управления en

vvadim
Offline
Зарегистрирован: 23.05.2012

jeka_tm пишет:

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

У неё самое больное место - сгорелоопасность

anon
Offline
Зарегистрирован: 23.05.2013

питание работает, 12 в приходят, на драйвере лампочки горят, напряжение без двигателя не давал.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

даташит на свою плату дайте. че то там нечисто

vvadim
Offline
Зарегистрирован: 23.05.2012

Мог уже и попалить драйвер

anon
Offline
Зарегистрирован: 23.05.2013

http://files.mail.ru/0ABEF4D6C1C74522BBA341D4D41589C4

это на микруху, а назначение переключателей нарисовано прямо на плате.

все что нашел - http://files.mail.ru/EB1DBA4419ED48E6B6F24F0335E34158

плата майд ин чина - poEwer и наполовину припаянный рез в наличии(

UPD -  включаю питание - пробует рвпнуться - и все. при замере напряжения, когда к минусу прикосаюсь - тоже еле дергается иногда

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

anon
Offline
Зарегистрирован: 23.05.2013

сигнал идет. как микруху проверить? в случае смерти - что-нибудь более надежное для  одного nema 23 на 2,5а посоветуете?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да как просто тыкаетесь на ее ножки. они же распаяны на платы и торчат немного

вы вообще что собираете?

 

vvadim
Offline
Зарегистрирован: 23.05.2012

Любой драйвер для шагового двигателя может погореть, если дёргать провода мотора под напругой. Берите любой дешёвый для проб на 3А, когда убедитесь, что этот помер. Но сначала разберитесь со схемой и правильностью подключения, и уно рабочая? Попробуйте пины поменять. Уменя на уне 9 пин, например,  после коротыша не работает.

anon
Offline
Зарегистрирован: 23.05.2013

уну проверю, сама рабочая - лампочкой мигает. провода мотора и питания не дергал, ибо подключил раз все сразу и не трогал

 

anon
Offline
Зарегистрирован: 23.05.2013

ничего. пока просто хочу мотор оживить.

vvadim
Offline
Зарегистрирован: 23.05.2012

Кстати, провода шаговика правильно подключил (по обмоткам всё нормально)?

anon
Offline
Зарегистрирован: 23.05.2013

А+А- одна, В+В - другая. подключал один раз вместе с проводами питания и больше не трогал.  странно, что замеряя вольтаж, когда касаюсь земли ( какк оказалось - не только - вообще любого винта крепежа проводов шагового двигателя и питания)- время от времени моторчик дрыгается - делает шаг. земля на БП есть

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

землю с драйвера подключили к ардуине?

anon
Offline
Зарегистрирован: 23.05.2013

нет. на минус БП

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а минус бп и земля управляющих линий в драйвере замкнуты или они разделены?

то есть вы подаете сигналы, а земли не соеденили ардуины и драйвера? если так то вы нам тут голову морочите

anon
Offline
Зарегистрирован: 23.05.2013

у меня ардуино от usb запитана. управляющие минусы просто на минус посадил. скажите, как правильно подключить?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

управляющие минусы посадили минус чего?

там опторазвязка стоит. жаль схемы нет, но скорее всего так. управляющие минусы подцепляете на gnd ардуины, а плюсовые сигнальные к нужным пинам ардуины

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
#define STEP 2
#define DIR  3
#define EN  4
#define delay_step 100

void setup(){  
  pinMode(STEP, OUTPUT);
  pinMode(DIR, OUTPUT);
  pinMode(EN, OUTPUT);	
}

void loop(){  
  digitalWrite(EN, 0);
  cicle(1, 500);
  delay(500);
  cicle(0, 500);
  delay(500);
}

void cicle(boolean napr, int steps){
  digitalWrite(DIR, napr);
  for (int i=0;i<steps;i++){
    digitalWrite(STEP, 1);
    delay(delay_step);
    digitalWrite(STEP, 0);
    delay(delay_step);
  }
}

попробуйте так и предыдущее сообщение не забудьте

anon
Offline
Зарегистрирован: 23.05.2013

так и сделал - теперь лампочка RUN мигает - но двигатель все равно молчит

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

рисуйте схему как все подключили

anon
Offline
Зарегистрирован: 23.05.2013

2 пиалы чаю добропорядочным гражданам! ожил) спасибо огромное - землю на ардуину переставил

только еще вопрос - accel stepper с таким уже не управится? как тогда быть с ускорениями, например?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

неужели. думал уже все. если все правильно было подключено значит сдохла микруха

а вам уже говорили как))) я лично с этой либой не баловался, а смотреть ее не хочется

anon
Offline
Зарегистрирован: 23.05.2013

и на accel stepper работает. объявляется как и написал vvadim
 

#include <AccelStepper.h>
 
#define STEP 3
#define DIR  4
	 
AccelStepper stepper(1, STEP, DIR);

примеры тож работают.
а по схеме подключения - нужно было землю с управляющих входов на ардуино вешать, а я повесил на БП.

еще раз огромное спасибо за помощь. будем курить либы.

 

vvadim
Offline
Зарегистрирован: 23.05.2012

AcelStepper управится со всем

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

честно сказать я был немного в шоке что вы только сигналы подали, а земли не соеденили.

вам бы элементарные вещи подучить, как течет ток, от чего он зависит, как работают транзисторы резисторы и тп.

чтобы в следующий раз не ломать голову изза глупых ошибок. без обид