Прошу помощи в подключении Stepper Motor Driver DQ420MA к Ардуино
- Войдите на сайт для отправки комментариев
Сразу предупрежу, что я делаю первые шаги в радиоэлектронике и возможно вопросы будут звучать глупо
Задача: управлять шаговым двигателем Nema 17 с помощью ардуино,
для этого был куплен такой комплект: http://www.ebay.com/itm/170865383263
Собственно двигатель (42BYGHW609) и драйвер к нему (DQ420MA)
За основу взял вот этот http://danthompsonsblog.blogspot.com/2008/09/easydriver-v31-tutorial.html учебник по подключению шагового двигателя к драйверу "Easy Driver".
По аналогии подключаю так
POWER
driver <-> motor
A+ ------- A (BLK)
A- ------- C (GRN)
B+ ------- B (RED)
B- ------- D (BLU)
driver <-> power sup
DC- ------- GND
DC+ ------- +12V 4A
SIGNAL
driver <-> arduino
PUL ------- D12 (насколько я понял PUL этот тот-же STEP)
DIR ------- D3
+5V ------- +5V
ENBL ------- ?????
Вопрос: правильно-ли я все подключаю и куда подключать контакт ENBL в драйвере?
Сразу предупрежу, что я делаю первые шаги в радиоэлектронике и возможно вопросы будут звучать глупо
Ну и что? Все мы в чем-то чайники. Вопрос всегда подразумевает что человек чего-то не знает. А вот ответ - не означает автоматического "знания", учитывайте это пользуясь "бесплатными советами" ;)
Так что отвыкайте "расшаркиватся" в своей новичковости. Просто спрашивайте. "Неадекватные реакции" вызывают только впросы который поднимаются в 100-тый раз, или просто отвеченны в документации или вообще "ответ на главной странице сайта", а человеку просто лень разбиратся и проще спросить форум чем гугл или встроенный поиск. Но в этом случае его не спасут никакие реверансы "я чайник", никакие просьбы "не пинать" :) Могу оттянутся "от души" ;)
Если же видно что вы сами прикладываете усилия, но "просто не получается" - опасаться нечего.
Вопрос: правильно-ли я все подключаю и куда подключать контакт ENBL в драйвере?
Ну что-бы "ответить точно" - нужно найти даташит именно на ваш драйвер. И знать точную его версию.
На "беглый взгляд" - все правильно.
По поводу ENBL, он же Enable. Обычно пин с таким именем означает банальное "включить/выключить". Дать питание на обмотки мотора или нет (даже когда вы не "степаете", на обмотки может подаватся ток для "удержания позиции").
Его можно завести на любой свободный цифровой пин ардуины, и включать/выключать мотор простым digitalWrite(ENBL_PIN,HIGH/LOW) (предварительно, в setup() включив на выход этот пин)
Если "это не требуется", то можно попробовать "просто никуда не подключать" - если в самом модуле есть подтяжка этого пина к питанию - больше ничего и не нужно. мотор будет "включен всегда". Если в модуле "не подтяжки" (будет проявлятся в том, что происходят выключения от каких-то случайных помех. Руку там поднесли к пину и проч.) - тогда его нужно будет самому притянуть к питанию (подключать к 5v пину, через резистор большого номинала. скажем в 10k. Точность не нужна.... подойдет любой на килоомы).
К сожадению на ссылка в вашей статье на схематику модуля не рабочая, поэтому "точно" сказать нужен внешний подтягивающий резюк или нет - не могу. Но в любом случае можно попробовать "просто никуда не подключать". Это безопастно. в крайнем случае мотор просто "не будет крутится" или "крутится с перебоями".
Спасибо за развернутый ответ, и еще один момент: в драйвер приходит +5V а земля откуда берется на питание драйвера?
Спасибо за развернутый ответ, и еще один момент: в драйвер приходит +5V а земля откуда берется на питание драйвера?
Ну так вы же сами, описывая схему уже это описали DC- ------- GND.
Земля - она вообще везде общая должна быть (иногда это даже не упоминаю, просто "само собой разумеется", если только схеме не "развязанны" через какое-нибудь опто реле и т.п.). Даже если вы питаете дуину и драйвер от разных источников - земли связать нужно.
Вообщем если вы питаете дуину и шилд одним источником (и уже подключили землю источника к модулю) - вам не нужно ничго больше делать (естественно если сама дуина тоже подключена к этому источнику на + и GND) - все уже связанно.
Если же вы питаете "от разных", например ардуино от USB, а модуль от блока питания - нужно тогда, дополнительно, связать GND модуля и GND пин ардуины.
Вообщем что-бы не "гадать" конечно попробуйте, все-таки, найти схематику вашего модуля. Дайте сюда ссылку - посмотрим, может что понятней/определенней станет.
Да, про "землю" это я решил перестраховался.
К сожалению схему производитель не показывает, но есть схема подключения: http://www.wantmotor.com/ProductsView.asp?id=273&pid=82 к сожалению не к ардуино и мне как новичку пока не понятна.
Почитайте вот эту тему, особенно с 25 сообщения.
Судя по схеме, в этом драйвере реализована гальваническая развязка, таким образом, что для того чтобы им управлять важно что бы было подключено +5V ардунино, земли блока питания мотора и ардуино соеденять крайне не рекомендую.
maksim Благодарю за наводку, ушел изучать.
Ну а если источник питания один, то в любом случае земля у драйвера и дуины будет общая.
Для дополнения картины, залез внутрь DQ420MA
...земли блока питания мотора и ардуино соеденять крайне не рекомендую.
Если так, то как запитать драйвер если кроме +5V и цифровых выходов с ардуино, на него ничего не идет?
Ну а если источник питания один, то в любом случае земля у мотора и дуины будет общая.
Источники разные, +5V с ардуино, а питание для ШД (14V) одельно.
...земли блока питания мотора и ардуино соеденять крайне не рекомендую.
Если так, то как запитать драйвер если кроме +5V и цифровых выходов с ардуино, на него ничего не идет?
Присоединяюсь к вопросу. Тоже об этом думал. Конечно при полностью развязанных схемах оно спокойней когда силовая часть никак не связанна с логикой, но тут, похоже, производитель не оставил выбора :( На модуле только "одна земля".
Ну а если источник питания один, то в любом случае земля у мотора и дуины будет общая.
Источники разные, +5V с ардуино, а питание для ШД (14V) одельно.
На модуль-то понятно что вы берете 5v с 5v-пина дуины, а саму дуину от чего питаете? От usb, от внешнего разъема (или через пин vin)?
И еще, не уверен, но где-то в памяти крутится, что модуль 12-вольтовый. Уверены в 14v? Просто если взять 12v блок, тогда появляется возможность от него же и дуину запитать через внешний разъем. Тогда вопрос "земли" - отпадет сам собой. Так как "источник питания" получится один.
На модуль-то понятно что вы берете 5v с 5v-пина дуины, а саму дуину от чего питаете? От usb, от внешнего разъема (или через пин vin)?
Дуину сейчас запитываю от USB.
И еще, не уверен, но где-то в памяти крутится, что модуль 12-вольтовый. Уверены в 14v? Просто если взять 12v блок, тогда появляется возможность от него же и дуину запитать через внешний разъем. Тогда вопрос "земли" - отпадет сам собой. Так как "источник питания" получится один.
Ну по крайней мере в спецификации к драйверу на сайте производителя пишут: Supply voltage from 12VDC to 36VDC
Еще раз, уже на свежую не сонную голову посмотрел вашу ссылочку http://www.wantmotor.com/ProductsView.asp?id=273&pid=82
самая нижния схема - наша.
Вывод:
leshak
Попытаюсь сегодня вечером полученную информацию применить.
leshak Все так и есть, работает! Спасибо большое!
Вопрос, какой скетч использовали?
И еще один кто нибудь подключал ЛСД индикатор на котором бы отображались обороты, с пользованием двух кнопок - больше, меньше оборотов.
Вопрос, какой скетч использовали?
Продолжение темы тут
И еще один кто нибудь подключал ЛСД индикатор на котором бы отображались обороты, с пользованием двух кнопок - больше, меньше оборотов.
А в чем у вас трудности? При подключении LCD, используйте соответствующую библиотеку. LiquidCrystal или LiquidCrystal_I2C (в зависимости от типа подключения вашего LCD)
Спасибо за оперативный ответ, не ожидал.
Буду пробовать.
А вообще готовый скетч не встречали управления ШД допустим 3 кнопки, 1-включение enabl, 2- больше оборотов, 3 - меньше оборотов с отображением результата на ЛСД.
Этого на форуме нет, да и в гугле уже несколько дней ищу пока не нашел.
Такой скеч самому написать не трудно, оттолкнуться можно от этого примера. Кнопки у вас как подключены?
Спасибо Вам мил человек, действительно не трудно когда знаешь, а я только учусь.
Буду искать, вообще по сути мне надо генератор управляемый 2 кнопками частота (делить на обороты например на 100) больше меньше и вывод на индикатор оборотов.
С генератора (Ардуино) подается на step контроллера.
Я делал генератор на таймере 555 но там приходится на переменном сопротивление разметку делать по оборотам (это все грубо и не точно) да и одним резистор весь диапазон оборотов не охватить надо ставить переключатель и менять RC цепочку - частоту, не очень это удобно.
Есть варианты управление что то похожие у Итальянцев http://www.lucadentella.it/en/2013/05/30/allegro-a4988-e-arduino-3/ или вот это http://vk.com/topic-41493607_27438749
уже весь интернет перевернул, такое представление что это надо только мне и не кому больше.
если в программе больше ничего не будет, то возможно и без таймеров обойтись, просто цикл.
только антидребезг и задержку после нажатия сделать и всё.
а эта задержка
int
delay = 1000;
для чего?это по умолчанию. лучше кончено сделать нулем.
Спасибо , а как поставить делитель например 100 это будет соотвествовать оборотам и это вывести на индиктор например LCD 1602
обороты будут зависить от кол-ва шагов вашего двигателя и режима драйвера... 1/4, 1/16... микрошаг...
Это я понимаю, куда это вставить, двигатель может быть любой я и предлагаю что 100 гц будет соответсвовать одному обороту, микрошаг меняется на самом драйвере у меня вот этот http://www.goodluckbuy.com/single-axis-cnc-stepper-driver-for-cnc-millin...
Или я не прав?
Господа большое Вам спасибо, за помощь. Извините за назойливость. Обязуюсь когда разберусь обязательно помочь такому как я.
Не получается у меня индикатор прикрутить.
какие 100Гц? у вас количество шагов на оборот написано на двигателе. если вы выставите режим полный шаг, то собственно надо подать такое количество импульсов на степ, сколько шагов на движке. Если режим 1/4, то соответственно в четыре раза больше.
Да это не принципиально я привел это как пример.
Может Вы мне про индикатор что нибудь подсказали.
Профессионалы Ардуинцы помогите прошу Вас сотворить сие чудо.
легко
Был бы у меня действительно проект который требует много времени, а ток две кнопки и индикатор.
Даже дело не в деньгах просто интересно разве за это еще и деньги берут? Два прихлопа три при топа!
придется отложить Arduino , сколько на него времени потратил проще на рассыпухе сделать. Как оказалось Arduino нет все просто как пишут.
Был бы у меня действительно проект который требует много времени, а ток две кнопки и индикатор.
Даже дело не в деньгах просто интересно разве за это еще и деньги берут? Два прихлопа три при топа!
придется отложить Arduino , сколько на него времени потратил проще на рассыпухе сделать. Как оказалось Arduino нет все просто как пишут.
Уважаемый, вы сами себе противоречите.. проект два прихлопа три притопа, но вы на него потратили много времени...
Давайте будем справедливо подходить... помощь, это когда вы что то делаете и вам нужно чуть чуть помочь и подсказать... а когда нужно за вас все сделать, это уже не помощь нифига...
Уважайте чужой уборщиц!
Количество кнопок и индикаторов не определяет сложность проекта..
С двумя кнопками и индикатором можно такого начудить, можно тетрис сбацать например :)
Половина форума знает и может написать эту программку. НО вы сами все сделали для того что бы вам никто не захотел помочь просто так ради интереса.
Кнопки у вас как подключены?
Где вы ответили на этот вопрос?
Где та программа, в которой видно куда и как подключены драйвер, лсд, кнопки?
Так вот тот человек, который бы мог вам написать эту программку за интерес не сделает этого так как вы ничего не предоставили, а задавать вам наводящие вопросы и вытягивать из вас на них ответы никому не интересно.
Спасибо друзья вроде получается, как только сделаю опубликую на форуме.
maksim
Максим, я не достаточно хорошо знаю вопрос чтобы тут-же ответить на то чего не знаю сам, я пытался конкретезировать суть проблемы и попытаться помочь, для вас возможно все очевидно, для меня нет!
...ой, вы не ко мне обращались прошу прощения :)