Добрый день, столкнулся с проблемой при подключении шаговика к дуне через драйвер. Подключаю все, как показано на картинке. Использую только STEP, то есть от драйвера идет один шлейф (SVG). Все три провода подключаю к ардуине (не использую Troyka Shield). На контакты Vin, Vout подвожу крону 9V. Подключаю двигатель, пишу скетч и все должно быть ОК. И на самом деле все ОК, если я пишу простой скетч без общения через COM-порт. Но мне необходимо управлять шаговиком, по команде. Вот код: Код (Text): #define Turn_Table '3' #define Table_on_Start '4' int stepper = 9; int stepCount = 0; // переменная для хранения позиции мотора void setup() { Serial.begin(9600); pinMode(stepper, OUTPUT); } void loop() { while (Serial.available()) { char event = Serial.read(); switch (event) { case Turn_Table: digitalWrite(stepper, HIGH); delay(20); digitalWrite(stepper, LOW); delay(20); stepCount++; break; case Table_on_Start: for (int i = 0; i < 200 - stepCount; i++) { digitalWrite(stepper, HIGH); delay(20); digitalWrite(stepper, LOW); delay(20); } break; } } } Заливать код приходится отключив драйвер от ардуины, так как иначе код просто не заливается. После того как залил код, возвращаю в цепь драйвер и подключаю ардуину к компу. В результате диод на дуне загорается, но при попытке открыть COM-порт выдается ошибка о том что он недоступен. Подскажите, пожалуйста, в чем может быть проблема. Буду благодарен любой помощи.
Залить скетч, не проблема. Отключив драйвер, код заливается. Проблема заключается в том, что после подключения полностью собранной схемы (с уже залитым кодом) к компу, я не могу управлять процессом через COM-порт, потому что он по странным причинам недоступен.
Ну, сходу напрашивается версия, что мотор у вас тупо сжирает весь ток и вся схема не может работать от источника типа "USB+крона".
Версия номер 2 - глюки взаимодействия винды с виртуальным COM портом и как результат - удержание МК в состоянии сброса, но это чисто схемотехнически маловероятно.
Версия с недостатком тока очень похожа на правду, потому что при отключении питания на шлейфе SVG, диод на ардуине начинает светиться ярче. Вот мотор: http://amperka.ru/product/stepper-motor-ldo-28sth45-0674a Мне почему-то казалось что от ардуины питается только сам драйвер, которому достаточно 3,3-5 В. А на двигатель питание идет уже от кроны подключенной к драйверу на контакты Vin, Vout. В связи с моими очень слабыми познаниями в области электротехники прошу помочь решить эту проблему.
И, кстати, я не указал: в схеме также присутствует лазерный модуль, который кушает еще 3В и питается он от ардуины. Так что нехватка питания - это похоже и есть причина неработоспособности установки. Можно ли как-то все организовать без использования дополнительных батареек?
Исключил из схемы лазер и все равно двигатель не реагирует. Но если я пишу что-то вроде этого: Код (Text): int stepper = 9; void setup() { Serial.begin(9600); pinMode(stepper, OUTPUT); } void loop() { for (int i = 0; i < 200; i++) { digitalWrite(stepper, HIGH); delay(20); digitalWrite(stepper, LOW); delay(20); } } Двигатель крутится, как надо. Но тут нету никакого общения с контроллером через COM-порт, что мне крайне необходимо.
Но ведь питания для вращения двигателя без общения через COM-порт хватает. Он вращается в соответствие с прописанным кодом. Проблемы с COM-портом тоже быть не может, потому что лазер я могу включать/отключать по команде.
Т.е. как только вы подключаете драйвер к ардуине, что с мотором, что без него, скетчи перестают заливаться?
Решил проблему! Дело действительно было в нехватке питания. Теперь же я питаю ардуину через импульсный блок питания (9В), при этом также подключаю плату к компу по USB, для общения с контроллером через COM-порт. Все работает правильно. Благодарю за помощь!