Вопросы по Nano + 28BYJ-48
- Войдите на сайт для отправки комментариев
Имеется Нано, шилд с кнопками, шаговый двигатель 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 |
} |
1. Мне немного не хватает крутящего момента этого двигателя, зависит ли мощность двигателя от того в каком режиме он работает, пробовал FULLSTEP 4 и HALFSTEP 8, кажется разницы нет. Как можно выжать из этого двигателя максимум (купить более мощный не предлагайте)?
Обещают 800 г на см : http://www.jangeox.be/2013/10/change-unipolar-28byj-48-to-bipolar.html
1 - Можно поставить к нему еще редуктор, тогда будет работать (еще) медленней, но зато сможет больший вес крутить. То, как Вы именно его запускаете при этом не важно - двигателю, в общем-то одни и те же сигналы идут.
2 - Самому еще двигатель не пришел, потому только предполага: Вы его точно правильно подключили? Правильное количество питания на него подали?
3 - Конечно можно, ноги A0-A7 они и как цифровые могут работать. Если мне не изменяет память, то A0 = 14 нога, A1 = 15я и так далее, главное что бы питания на всех хватило.
Обещают 800 г на см : http://www.jangeox.be/2013/10/change-unipolar-28byj-48-to-bipolar.html
Воу воу, круто. Жаль, что в России цены в радиомагазинах такие, что из китая заказать 5 штук L293D дешвле, чм у нас куить одну :(. Спасибо за ссылку, не будет в моем проекте хватать 300г/см, буду корёжить мотор.
Araris, за "stepper1.stop();" спасибо, вечером попробую.
SunX, редуктор проблематично мне будет присобачить, к сожалению. Все эти компоненты подключал не я, а человек разбирающийся. Питание осуществляется от 4х аккумуляторов 1.2V и емкостью 1900mA/h через повышающий преобразователь, на выходе из него получаю 5В, выход раздваивается и одна пара идет на Нано а вторая на драйвер, по идее правильно.
Как посчитать или измерить хватит ли этих аккумуляторов для питания Ноно и двух двигателей с драйверами?
Эм... просто перерезать дорожку и чудесным образом двигатель увеличит свою мощность более чем в два раза? И какие последствия таких манипуляций, чёт падазрительна?
Эм... просто перерезать дорожку и чудесным образом двигатель увеличит свою мощность более чем в два раза? И какие последствия таких манипуляций, чёт падазрительна?
Не совсем, Вам еще драйвер придется заменить. Там же в статье все описано, был униполярный двигатель, а после махинаций стал биполярный, т.е. напряжение будет подаваться на обе катушки сразу, только будет меняться полярность нужным образом, в итоге в один момент на двигатель будет действовать большее магнитное поле и значит он будет "сильнее".
Как посчитать или измерить хватит ли этих аккумуляторов для питания Ноно и двух двигателей с драйверами?
Подключить все, запустить и померить вольтметром напряжение, если осталось 5В или около того, то все ок, если сильно просело, значит не ок, все просто :).
Но скорее всего совет Araris более верен, у него опыта значительно больше, чем у меня в данной теме.
А какой нужен для этого драйвер, сколько он стоит? Скетч менять тоже надо будет?
Момерить на выходе преобразователя?
Почитайте, например, здесь http://arduino.ru/forum/apparatnye-voprosy/upravlenie-shagovym-dvigatelem-cd-privoda про отличия в управлении униполярами и биполярами, про то, что ULN2003 для биполярного не подойдет.
Да, скетч менять надо будет.
Araris, спасибо почитаю. А может есть похожий униполярный движок сходного размера но чуть сильнее, ну вот чтоб совсем ничего не делать, а просто старый выдернуть, новый воткнуть)))?
Есть еще 28BYJ-48 на 12 Вольт, у него крутящий момент 450 гсм (у пятивольтового 300 гсм).
Спасибо, подумаю.
Скажите, эта штука " http://ardu.net/ru/dvigateli-i-drajvery/174-motor-shield-l293d-shild-dly... " годится для управления двумя модифицированными из униполярного в биполярный 28BYJ-48? Покупать? По подсказкам я смогу всё это подключить и переписать скетч?
Я правильно понимаю, после переделки будет доступен только режим полного шага?
Скажите, эта штука " 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 гривен с доставкой.
У меня нет опыта заказа у братьев по разуму да и ждать месяц как-то не хочется.
Как думаете, моих аккумуляторов хватит питать всю эту кухню?
Вы случайно размеров этого девайса не знаете?
У меня нет опыта заказа у братьев по разуму да и ждать месяц как-то не хочется.
Опыт получить труда не составит, было бы желание ))
То есть насколько долго они смогут питать ? Нет ответа. Все зависит от того, как часто и долго будут работать моторы, не так ли ?
Стоп-стоп! А ведь речь шла о Nano. Упс, эта штука предназначена для бОльших Ардуин, габариты ее соответствуют габаритам Uno. Прицепить ее к Nano, конечно, возможно, но как-то это не кошерно будет выглядеть. Впрочем, если компоновка значения не имеет, то можно и такой девайс брать.
Или вообще не париться с шилдами, купить пару L293D, да сделать что-то вроде
Поясню некоторые моменты. Вся эта ерунда затеяна для вращения экваториальной монтировки по одной оси (один двигатель) и для электрофокуссирования (второй двигатель) дабы избежать дрожания при ручной фокуссировке. Соответственно - один двигатель работает постоянно а второй кратковременно, попал в фокус - отдыхай. В домашних условиях можно было бы питаться от розетки но вот в поле розеток нет. Желательно чтоб аккумуляторов хватило хотя бы на часа 3, как замерить и посчитать расход энерги я понятия не имею.
По поводу вопроса о размерах. Сейчас Нано, драйвер и преобразователь лежат в коробке шириной чуть более длинны Нано и длинной как две длинны Нано, плюс к верхней крышке коробки прикручен LCD шилд с кнопками, все это соединяется между собой туевой хучей проводов и выглядит не кошерно, как Вы написали. Что значит "эта штука предназначена для бОльших Ардуин", разве её и Нано нельзя соеденить теми же проводами как у меня сейчас? Хотя подозреваю, что все равно в мою коробку она не поместится.
Реализовать вариант который Вы привели на картинке с макетной платой я точно не смогу, знаний ноль дробь ноль.
Вот так это выглядит на Уно:
Размер примерно 53 х 68 мм. Соединить ее проводами с Нано - возможно.
Почитайте-ка это: http://ferretrobotics.blogspot.com/2011/01/tutorial-how-to-control-bipolar-stepper.html
Ничего там сложного нет, это я Вам как человек, от электроники далекий, говорю.
В домашних условиях можно было бы питаться от розетки но вот в поле розеток нет. Желательно чтоб аккумуляторов хватило хотя бы на часа 3, как замерить и посчитать расход энерги я понятия не имею.
Самый простой способ - собрать и проверить в квартире, если не хватает - можно попробовать напихать еще аккумуляторов.
Что значит "эта штука предназначена для бОльших Ардуин", разве её и Нано нельзя соеденить теми же проводами как у меня сейчас? Хотя подозреваю, что все равно в мою коробку она не поместится.
К большим ардуинам эта штука может цепляться вообще без проводов, просто сверху вставляется и все, и размер у нее соответствующий (т.е. почти как у, например, Arduino UNO). С нано же придется подключать проводами, да.
Боюсь в Вашу коробочку оно не влезет.
Выглядит классно, проводов минимум и компактно.
А сколько проводов надо для сочленения Нано и этого драйвера. Сейчас у меня кажется 4 провода идет с Нано к драйверу плюс два провода питания для драйвера?
Проводов столько же.
4 сигнальных провода * количество двигателей + 1 провод питание + 1 провод земля.
Понял. К Arduino UNO можно красиво и компактно подключить без проводов только одну приблуду, на пример драйвер L293D или LCD шилд, и то и то уже не получится?
Зачастую так и есть за исключением случаев когда специально проектируется бутерброд из модулей (ну или подбирается без пересечения используемых выводов).
Araris, добавил я строчку "stepper1.stop();" в скетч, но двигатель все равно греется, возможно я не туда добавил?
079
if
(isRun == 1)
080
{
081
lcd.print(
"+++ Running +++ "
);
082
}
083
else
084
{
085
lcd.print(
" Stopped "
);
stepper1.stop();
086
}
И еще вопос, драйвром L293D можно управлять только биполярными двигателями или и униполярными, вдруг не буду переделывать свой в биполярный?
....... вдруг не буду переделывать свой в биполярный?........
А вот это зря.
Нормальный шаговик должен быть биполярным.
И управляться серез два сигнала: step и dir.
И через специальный контроллер с установкой тока.
И с дроблением шага ( если нужно).
Я ещё ничего окончательно не решил, нужно собрать больше информации а потом принимать решение.
Что значит с дроблением шага? Мне здесь выше сказали, что биполярный двигатель работает только в полношаговом режиме!
Araris, добавил я строчку "stepper1.stop();" в скетч, но двигатель все равно греется, возможно я не туда добавил?
Добавили вроде туда.
Я степперами управляю напрямую, так что с этой библиотекой не знаюсь. По окончании движений просто подаю низкий уровень на все четыре пина
Araris, ответьте пожалуйста ещё на вопрос в моём сообщении №26.
И еще вопос, драйвром L293D можно управлять только биполярными двигателями или и униполярными, вдруг не буду переделывать свой в биполярный?
И биполярными, и униполярными.
"Технические возможности шилда позволяют реализовать разнообразные проекты, связанные с подключением и управлением слаботочными двигателями следующих типов:
Кто-нибудь ещё знает как предотвратить нагрев двигателя в простое?
Вместо stepper1.stop();
поставьте
digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW);
Попробую, но наверно завтра, аккумуляторы на зарядке. Спасибо!
Araris, спасибо огомное, температура больного спала, чувствует себя хорошо!
Всем здравствуйте!
Приехал из Китая драйвер L293D, такой:
Помогите решить сначала аппаратные вопрсы а затем программные.
1. Нужно к этому драйверу подключить два шаговых двигателя 28BYJ-48 – 5V, один из них переделанный в биполярный. Возможно позже оба двигателя будут переделаны в биполярные.
2. Выше приводили ссылку по переделке униполярного двигателя 28BYJ-48 – 5V путем разрыва центральной дорожки на плате двигателя, но кажется в комментариях к этой статье, то ли где-то ещё я читал (если правильно понял), что можно не резать дорожку, а просто не подключать один из пяти выводов двигателя, так ли это?
3. LCD Keypad Shield имеет шесть кнопок, у меня сейчас подключены только пять, нужно добавить работоспособность ещё одной кнопки (крайняя правая "RST"), какие для этого контакты нужно соеденить между собой.
Ниже привожу схему как у меня сейчас всё подключено, нарисовал как смог, надеюсь будет понятно. Буду очень благодарен, если ответы Вы дорисуете на моей схеме. Спасибо!
Не резать нельзя надо резать.
Запятая после третьего слова.
Хотя если чисто теоретически то вроде при полной симметричности обмоток
ток через перемычку на течёт при условии что вы подаёте на каждую обмотку разнополярные сигналы.
Ладно, с одним разобрались. Как на счет остальных вопросов, кто-нибудь подскажет?
А по существу: лучше использовать биполярник и Step/Dir контроллер.
Заодно и крутящий момент ( ток ) сможете регулировать и микрошаги полУчите
Когда-то наткнулся на замечательный сайт http://ecnc.ru/
Там автор подробно описал работу с униполярными и биполярными двигателями. Описано как управлять движками из сериал-монитора. Если немного подумать, то можно понять как управлять движками тем способом, который нужен тебе. Есть скетчи для работы с оными. Если эти скетчи внимательно почитать, то все становится понятно. Пользуясь возможностью, еще раз поклонюсь автору.
Ребят, может всё-таки кто-то дорисует ответы на мои 1 и 3 вопрос, ну плохо я соображаю в этих штуках, нужно, чтоб наглядно было.
Ребят, может всё-таки кто-то дорисует ответы на мои 1 и 3 вопрос, ну плохо я соображаю в этих штуках, нужно, чтоб наглядно было.
Почитай внимательно информацию по моей ссылке выше. Там все разжевано, и для униполярных и для биполярных двигателей. Есть скетчи для тех и для других. В них три движка крутятся одновременно, каждый со своей скоростью, чтобы одновременно закончить выполнение команды. Описано как проверить работу скетчей командами с сериал монитора. Посылаешь "1200, 560, 385", это количество шагов каждому из двигателей, когда двигатели отшагают, ардуинка посылает строку "ОК" и готова принимать следующую команду. Скетчи с комментариями, вполне возможно разобраться и переделать под свои нужды.
Я использовал китайские драйверы А4988, по цене примерно 100р за штуку. На каждый движок надо один драйвер, т.е на 3 движка нужно 3 драйвера. Движки переделать на биполярные и будет вам степ-дир, и будет вам 1-1/2-1/4-1/8-1/16 шага, и будет Вам увеличение мощности движка.
До скетча дело ещё совсем не дошло, мне бы для начала подключить между собой железо, какие проводки куда подключать, понимаете?!
До скетча дело ещё совсем не дошло, мне бы для начала подключить между собой железо, какие проводки куда подключать, понимаете?!
Немножко понимаю :)
Ну так поделитесь Вашими знаниями!)
С Вашим шилдом делов не имел, так что ни чего подсказать не могу. Посмотрите даташит на L293D. Поищите документацию на Ваш шилд. Наверняка информация в интернете есть.
А если про драйверы A4988, пожалуйста, расскажу :)
Вот ссылочка, там вроде про Ваш шилд пишут http://tim4dev.com/2015/02/arduino-motor-drive-shield-l293d/
Спасибо! Подожду подсказок тех, кто имел дело с таким.
Почитаю.
Вот так правильно будет подключить один униполярный двигатель пока что без переделки в биполярный?