Вопросы по Nano + 28BYJ-48

CasterV
Offline
Зарегистрирован: 30.04.2015

Имеется Нано, шилд с кнопками, шаговый двигатель 28BYJ-48 с драйвером ULN2003.

Вопросы:

1. Мне немного не хватает крутящего момента этого двигателя, зависит ли мощность двигателя от того в каком режиме он работает, пробовал FULLSTEP 4 и HALFSTEP 8, кажется разницы нет. Как можно выжать из этого двигателя максимум (купить более мощный не предлагайте)?

2. Двигатель сильно нагревается находясь в дежурном режиме (подано питание но вращение не запущено), на много сильнее чем когда крутится, это нормально или что-то не так?

3. Пока теоретический вопрос. Можно ли крутить одновременно два таких двигателя? Если да, то для этого достаточно приобрести сам двигатель и драйвер? Как его подключить к Нано если все цифровые ноги уже заняты имеющимся двигателем и шилдом, остались только ноги А0-А7?

P.S. на всякий случай привожу скетч который сейчас работает. Спасибо откликнувшимся!

 

001 #include <AccelStepper.h>
002 #include <LiquidCrystal.h>
003  
004 #define HALFSTEP 8
005 LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
006 int adc_key_val[5] ={50, 200, 400, 600, 800 };
007  
008 // Motor pin definitions
009 #define motorPin1  2     // IN1 on the ULN2003 driver 1
010 #define motorPin2  3     // IN2 on the ULN2003 driver 1
011 #define motorPin3  11     // IN3 on the ULN2003 driver 1
012 #define motorPin4  12     // IN4 on the ULN2003 driver 1
013  
014 int NUM_KEYS = 5;
015 int adc_key_in;
016 int key=-1;
017 int isRun;
018 int speeds = -326;
019 int maxspeed = 1000;
020  
021 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
022  
023 void setup()
024 {
025   lcd.clear();
026   lcd.begin(16, 2);
027   lcd.setCursor(0,0);
028   lcd.print("    Stopped     ");
029   lcd.setCursor(0,1);
030   lcd.print("Speed ");
031   lcd.print(speeds);
032   lcd.print("   ");
033   isRun = 0;
034   analogWrite(10, 5);
035  
036   stepper1.setMaxSpeed(maxspeed);
037   stepper1.setSpeed(speeds);
038 }
039  
040 void loop()
041 {
042   adc_key_in = analogRead(0);    // read the value from the sensor
043   key = get_key(adc_key_in);  // convert into key press
044  
045   if (key >= 0)   // if keypress is detected
046    {
047         if (key == 1)
048         {
049         //????????
050         }
051  
052         if (key == 2)
053         {
054            //????????
055         }
056  
057       if (key == 0)
058       {
059          speeds += 10;
060          delay(200);
061       }
062       if (key == 3)
063       {
064          speeds -= 10;
065          delay(200);
066       }
067       if (speeds>maxspeed)
068       {
069          speeds = maxspeed;
070       }
071       if (speeds<-maxspeed)
072       {
073          speeds = -maxspeed;
074       }
075       if (key == 4)
076       {
077         isRun = 1 - isRun;
078         lcd.setCursor(0,0);
079         if (isRun == 1)
080         {
081           lcd.print("+++ Running +++ ");         
082         }
083         else
084         {       
085           lcd.print("    Stopped     ");
086         }
087         delay(250);
088       }
089       lcd.setCursor(0, 1);
090       lcd.print("Speed ");
091       lcd.print(speeds);
092       lcd.print("       ");
093       stepper1.setSpeed(speeds);
094       delay(50);
095   }
096   
097   if (isRun == 1)
098   {
099     stepper1.runSpeed();
100   }
101  
102 }
103  
104 int get_key(unsigned int input)
105 {
106     int k;
107     for (k = 0; k < NUM_KEYS; k++)
108     {
109       if (input < adc_key_val[k])
110             return k;
111     }
112        if (k >= NUM_KEYS)
113       k = -1;  // No valid key pressed
114     return k;
115 }

 

Araris
Offline
Зарегистрирован: 09.11.2012

CasterV пишет:

1. Мне немного не хватает крутящего момента этого двигателя, зависит ли мощность двигателя от того в каком режиме он работает, пробовал FULLSTEP 4 и HALFSTEP 8, кажется разницы нет. Как можно выжать из этого двигателя максимум (купить более мощный не предлагайте)?

Обещают 800 г на см : http://www.jangeox.be/2013/10/change-unipolar-28byj-48-to-bipolar.html

CasterV пишет:

 

2. Двигатель сильно нагревается находясь в дежурном режиме (подано питание но вращение не запущено), на много сильнее чем когда крутится, это нормально или что-то не так?
 
 
Может быть stepper1.stop(); ?
SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

1 - Можно поставить к нему еще редуктор, тогда будет работать (еще) медленней, но зато сможет больший вес крутить. То, как Вы именно его запускаете при этом не важно - двигателю, в общем-то одни и те же сигналы идут.

2 - Самому еще двигатель не пришел, потому только предполага: Вы его точно правильно подключили? Правильное количество питания на него подали?

3 - Конечно можно, ноги A0-A7 они и как цифровые могут работать. Если мне не изменяет память, то A0 = 14 нога, A1 = 15я и так далее, главное что бы питания на всех хватило.

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

Araris пишет:

Обещают 800 г на см : http://www.jangeox.be/2013/10/change-unipolar-28byj-48-to-bipolar.html

Воу воу, круто. Жаль, что в России цены в радиомагазинах такие, что из китая заказать 5 штук L293D дешвле, чм у нас куить одну :(. Спасибо за ссылку, не будет в моем проекте хватать 300г/см, буду корёжить мотор.

CasterV
Offline
Зарегистрирован: 30.04.2015

Araris, за "stepper1.stop();" спасибо, вечером попробую.

SunX, редуктор проблематично мне будет присобачить, к сожалению. Все эти компоненты подключал не я, а человек разбирающийся. Питание осуществляется от 4х аккумуляторов 1.2V и емкостью 1900mA/h через повышающий преобразователь, на выходе из него получаю 5В, выход раздваивается и одна пара идет на Нано а вторая на драйвер, по идее правильно. 

Как посчитать или измерить хватит ли этих аккумуляторов для питания Ноно и двух двигателей с драйверами?

CasterV
Offline
Зарегистрирован: 30.04.2015

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

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

CasterV пишет:

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

Не совсем, Вам еще драйвер придется заменить. Там же в статье все описано, был униполярный двигатель, а после махинаций стал биполярный, т.е. напряжение будет подаваться на обе катушки сразу, только будет меняться полярность нужным образом, в итоге в один момент на двигатель будет действовать большее магнитное поле и значит он будет "сильнее".

CasterV пишет:

Как посчитать или измерить хватит ли этих аккумуляторов для питания Ноно и двух двигателей с драйверами?

Подключить все, запустить и померить вольтметром напряжение, если осталось 5В или около того, то все ок, если сильно просело, значит не ок, все просто :).

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

CasterV
Offline
Зарегистрирован: 30.04.2015

А какой нужен для этого драйвер, сколько он стоит? Скетч менять тоже надо будет?

CasterV
Offline
Зарегистрирован: 30.04.2015

Момерить на выходе преобразователя? 

Araris
Offline
Зарегистрирован: 09.11.2012

Почитайте, например, здесь http://arduino.ru/forum/apparatnye-voprosy/upravlenie-shagovym-dvigatelem-cd-privoda про отличия в управлении униполярами и биполярами, про то, что ULN2003 для биполярного не подойдет.

Да, скетч менять надо будет.

CasterV
Offline
Зарегистрирован: 30.04.2015

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

Araris
Offline
Зарегистрирован: 09.11.2012

Есть еще 28BYJ-48 на 12 Вольт, у него крутящий момент 450 гсм (у пятивольтового 300 гсм).

CasterV
Offline
Зарегистрирован: 30.04.2015

Спасибо, подумаю.

CasterV
Offline
Зарегистрирован: 30.04.2015

Скажите, эта штука " http://ardu.net/ru/dvigateli-i-drajvery/174-motor-shield-l293d-shild-dly... " годится для управления двумя модифицированными из униполярного в биполярный 28BYJ-48? Покупать? По подсказкам я смогу всё это подключить и переписать скетч?

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

Araris
Offline
Зарегистрирован: 09.11.2012

CasterV пишет:

Скажите, эта штука " http://ardu.net/ru/dvigateli-i-drajvery/174-motor-shield-l293d-shild-dlya-upravleniya-dvigatelyami-arduino-motor-182438627.html " годится для управления двумя модифицированными из униполярного в биполярный 28BYJ-48? Покупать? По подсказкам я смогу всё это подключить и переписать скетч?

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

1. Годится. Там два L293D, соответственно, для двух степперов.

2. Да, только режим полного шага.

Замечу также, что у китайцев штука обойдется в 50-60 гривен с доставкой.

CasterV
Offline
Зарегистрирован: 30.04.2015

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

Как думаете, моих аккумуляторов хватит питать всю эту кухню? 

Вы случайно размеров этого девайса не знаете?

 

Araris
Offline
Зарегистрирован: 09.11.2012

CasterV пишет:

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

Опыт получить труда не составит, было бы желание ))

CasterV пишет:

Как думаете, моих аккумуляторов хватит питать всю эту кухню? 

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

CasterV пишет:

Вы случайно размеров этого девайса не знаете?

Стоп-стоп! А ведь речь шла о Nano. Упс, эта штука предназначена для бОльших Ардуин, габариты ее соответствуют габаритам Uno. Прицепить ее к Nano, конечно, возможно, но как-то это не кошерно будет выглядеть. Впрочем, если компоновка значения не имеет, то можно и такой девайс брать.

Araris
Offline
Зарегистрирован: 09.11.2012

Или вообще не париться с шилдами, купить пару L293D, да сделать что-то вроде

CasterV
Offline
Зарегистрирован: 30.04.2015

Поясню некоторые моменты. Вся эта ерунда затеяна для вращения экваториальной монтировки по одной оси (один двигатель) и для электрофокуссирования (второй двигатель) дабы избежать дрожания при ручной фокуссировке. Соответственно - один двигатель работает постоянно а второй кратковременно, попал в фокус - отдыхай. В домашних условиях можно было бы питаться от розетки но вот в поле розеток нет. Желательно чтоб аккумуляторов хватило хотя бы на часа 3, как замерить и посчитать расход энерги я понятия не имею.

По поводу вопроса о размерах. Сейчас Нано, драйвер и преобразователь лежат в коробке шириной чуть более длинны Нано и длинной как две длинны Нано, плюс к верхней крышке коробки прикручен LCD шилд с кнопками, все это соединяется между собой туевой хучей проводов и выглядит не кошерно, как Вы написали. Что значит "эта штука предназначена для бОльших Ардуин", разве её и Нано нельзя соеденить теми же проводами как у меня сейчас? Хотя подозреваю, что все равно в мою коробку она не поместится.

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

Araris
Offline
Зарегистрирован: 09.11.2012

Вот так это выглядит на Уно:

Размер примерно 53 х 68 мм. Соединить ее проводами с Нано - возможно. 

Почитайте-ка это: http://ferretrobotics.blogspot.com/2011/01/tutorial-how-to-control-bipolar-stepper.html

Ничего там сложного нет, это я Вам как человек, от электроники далекий, говорю.

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

CasterV пишет:

В домашних условиях можно было бы питаться от розетки но вот в поле розеток нет. Желательно чтоб аккумуляторов хватило хотя бы на часа 3, как замерить и посчитать расход энерги я понятия не имею.

Самый простой способ - собрать и проверить в квартире, если не хватает - можно попробовать напихать еще аккумуляторов.

CasterV пишет:

Что значит "эта штука предназначена для бОльших Ардуин", разве её и Нано нельзя соеденить теми же проводами как у меня сейчас? Хотя подозреваю, что все равно в мою коробку она не поместится.

К большим ардуинам эта штука может цепляться вообще без проводов, просто сверху вставляется и все, и размер у нее соответствующий (т.е. почти как у, например, Arduino UNO). С нано же придется подключать проводами, да.
Боюсь в Вашу коробочку оно не влезет.

CasterV
Offline
Зарегистрирован: 30.04.2015

Выглядит классно, проводов минимум и компактно.

А сколько проводов надо для сочленения Нано и этого драйвера. Сейчас у меня кажется 4 провода идет с Нано к драйверу плюс два провода питания для драйвера? 

Araris
Offline
Зарегистрирован: 09.11.2012

Проводов столько же.

4 сигнальных провода * количество двигателей + 1 провод питание + 1 провод земля.

CasterV
Offline
Зарегистрирован: 30.04.2015

Понял.  К Arduino UNO можно красиво и компактно подключить без проводов только одну приблуду, на пример драйвер L293D или LCD шилд, и то и то уже не получится? 

nevkon
Offline
Зарегистрирован: 20.01.2015

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

CasterV
Offline
Зарегистрирован: 30.04.2015

Araris, добавил я строчку "stepper1.stop();" в скетч, но двигатель все равно греется, возможно я не туда добавил?

079         if (isRun == 1)
080         {
081           lcd.print("+++ Running +++ ");         
082         }
083         else
084         {       
085           lcd.print("    Stopped     ");

                 stepper1.stop();

086         }

 

CasterV
Offline
Зарегистрирован: 30.04.2015

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

.......   вдруг не буду переделывать свой в биполярный?........

А вот это зря.
Нормальный шаговик должен быть биполярным.
И управляться серез два сигнала: step и  dir.

И через специальный контроллер с установкой тока.
И с дроблением шага ( если нужно).

 

CasterV
Offline
Зарегистрирован: 30.04.2015

Я ещё ничего окончательно не решил, нужно собрать больше информации а потом принимать решение. 

Что значит с дроблением шага? Мне здесь выше сказали, что биполярный двигатель работает только в полношаговом режиме!

Araris
Offline
Зарегистрирован: 09.11.2012

CasterV пишет:

Araris, добавил я строчку "stepper1.stop();" в скетч, но двигатель все равно греется, возможно я не туда добавил?

Добавили вроде туда.

Я степперами управляю напрямую, так что с этой библиотекой не знаюсь. По окончании движений просто подаю низкий уровень на все четыре пина

// Stop steppes
digitalWrite(ULN1_IN1, LOW);
digitalWrite(ULN1_IN2, LOW);
digitalWrite(ULN1_IN3, LOW);
digitalWrite(ULN1_IN4, LOW);
а как там библиотека это делает - х.з. Можете в исходниках глянуть.
CasterV
Offline
Зарегистрирован: 30.04.2015

Araris, ответьте пожалуйста ещё на вопрос в моём сообщении №26.

Araris
Offline
Зарегистрирован: 09.11.2012

CasterV пишет:

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

И биполярными, и униполярными.

"Технические возможности шилда позволяют реализовать разнообразные проекты, связанные с подключением и управлением слаботочными двигателями следующих типов:

  • четырёх двигателей постоянного тока (ДПТ - DC motors);
  • двух шаговых двигателей униполярных или биполярных с одинарной или двойной обмоткой (ШД - stepper motors);
  • двух 5В сервоприводов (СП - servos)."
CasterV
Offline
Зарегистрирован: 30.04.2015

Кто-нибудь ещё знает как предотвратить нагрев двигателя в простое?

Araris
Offline
Зарегистрирован: 09.11.2012

Вместо stepper1.stop();

поставьте

digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW);

CasterV
Offline
Зарегистрирован: 30.04.2015

Попробую, но наверно завтра, аккумуляторы на зарядке. Спасибо!

CasterV
Offline
Зарегистрирован: 30.04.2015

Araris, спасибо огомное, температура больного спала, чувствует себя хорошо!

CasterV
Offline
Зарегистрирован: 30.04.2015

Всем здравствуйте! 

Приехал из Китая драйвер L293D, такой:

Помогите решить сначала аппаратные вопрсы а затем программные.

1. Нужно к этому драйверу подключить два шаговых двигателя  28BYJ-48 – 5V, один из них переделанный в биполярный. Возможно позже оба двигателя будут переделаны в биполярные.

2. Выше приводили ссылку по переделке униполярного двигателя 28BYJ-48 – 5V путем разрыва центральной дорожки на плате двигателя, но кажется в комментариях к этой статье, то ли где-то ещё я читал (если правильно понял), что можно не резать дорожку, а просто не подключать один из пяти выводов двигателя, так ли это?

3. LCD Keypad Shield имеет шесть кнопок, у меня сейчас подключены только пять, нужно добавить работоспособность ещё одной кнопки (крайняя правая "RST"), какие для этого контакты нужно соеденить между собой.

Ниже привожу схему как у меня сейчас всё подключено, нарисовал как смог, надеюсь будет понятно. Буду очень благодарен, если ответы Вы дорисуете на моей схеме. Спасибо!

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Не резать нельзя надо резать.
Запятая после третьего слова.

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

 

CasterV
Offline
Зарегистрирован: 30.04.2015

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

А по существу: лучше использовать биполярник и Step/Dir  контроллер.
Заодно и крутящий момент ( ток ) сможете регулировать и микрошаги полУчите

Joiner
Offline
Зарегистрирован: 04.09.2014

Когда-то наткнулся на замечательный сайт http://ecnc.ru/

Там автор подробно описал работу с униполярными и биполярными двигателями.  Описано как управлять движками из сериал-монитора. Если немного подумать, то можно понять как управлять движками тем способом, который нужен тебе. Есть скетчи для работы с оными. Если эти скетчи внимательно почитать, то все становится понятно. Пользуясь возможностью, еще раз поклонюсь автору.

CasterV
Offline
Зарегистрирован: 30.04.2015

Ребят, может всё-таки кто-то дорисует ответы на мои 1 и 3 вопрос, ну плохо я соображаю в этих штуках, нужно, чтоб наглядно было.

Joiner
Offline
Зарегистрирован: 04.09.2014

CasterV пишет:

Ребят, может всё-таки кто-то дорисует ответы на мои 1 и 3 вопрос, ну плохо я соображаю в этих штуках, нужно, чтоб наглядно было.

Почитай внимательно информацию по моей ссылке выше. Там все разжевано, и для униполярных и для биполярных двигателей. Есть скетчи для тех и для других. В них три движка крутятся одновременно, каждый со своей скоростью, чтобы одновременно закончить выполнение команды. Описано как проверить работу скетчей командами с сериал монитора. Посылаешь "1200, 560, 385", это количество шагов каждому из двигателей, когда двигатели отшагают, ардуинка посылает строку "ОК" и готова принимать следующую команду. Скетчи с комментариями, вполне возможно разобраться и переделать под свои нужды.

Я использовал китайские драйверы А4988, по цене примерно 100р за штуку. На каждый движок надо один драйвер, т.е на 3 движка нужно 3 драйвера. Движки переделать на биполярные и будет вам степ-дир, и будет вам 1-1/2-1/4-1/8-1/16 шага, и будет Вам увеличение мощности движка.

CasterV
Offline
Зарегистрирован: 30.04.2015

До скетча дело ещё совсем не дошло, мне бы для начала подключить между собой железо, какие проводки куда подключать, понимаете?!

Joiner
Offline
Зарегистрирован: 04.09.2014

CasterV пишет:

До скетча дело ещё совсем не дошло, мне бы для начала подключить между собой железо, какие проводки куда подключать, понимаете?!

Немножко понимаю :)

CasterV
Offline
Зарегистрирован: 30.04.2015

Ну так поделитесь Вашими знаниями!)

Joiner
Offline
Зарегистрирован: 04.09.2014

С Вашим шилдом делов не имел, так что ни чего подсказать не могу. Посмотрите даташит на L293D. Поищите документацию на Ваш шилд. Наверняка информация в интернете есть.

А если про драйверы A4988, пожалуйста, расскажу :)

Вот ссылочка, там вроде про Ваш шилд пишут http://tim4dev.com/2015/02/arduino-motor-drive-shield-l293d/

 

CasterV
Offline
Зарегистрирован: 30.04.2015

Спасибо! Подожду подсказок тех, кто имел дело с таким.

Почитаю.

CasterV
Offline
Зарегистрирован: 30.04.2015

Вот так правильно будет подключить один униполярный двигатель пока что без переделки в биполярный?