Технический форум по робототехнике.
Stiven » 11 ноя 2015, 23:58
Доброго время суток форумчане! Обращаюсь к вам от лица без часу двухдневного "Электроника".
Ввиду необходимости собрать "Крутилку для объектива", приобрел: Arduino Nano, драйвер A4988, джойстик и шаговый мотор.
Все соединил согласно прикрепленной ниже схемы, но столкнулся с нерешаемой для меня проблемой! Подключенный чудо-девайс к сети, словно требуя объятий отказывается вертеть мотор, пока я в прямом смысле не прикоснусь руками, либо к драйверу, либо к контроллеру.
Могу себе представить глубину моей глупости, но очень надеюсь на ваше снисхождение и разъяснение проблемы, ведь я ничего не понимаю в электронике
Последний раз редактировалось
Stiven 13 ноя 2015, 18:57, всего редактировалось 1 раз.
Stiven » 13 ноя 2015, 18:47
Начинаю предполагать, что это проблема экранирования. Но как ее решить в данном случае?
Angel71 » 13 ноя 2015, 19:25
от чего питаете? может тока нехватает или на плате выкручено слишком низкое ограничение тока (не частите подстраивать, там подстроечный потенциометр, у них очень низкий ресурс). ну мультиметр в разрыв питания (у вас эт "20v") драйвера моторов и посмотрите сколько потребляет. ну и может провода слишком тонкие где и нужно на более толстые поменять.
Stiven » 13 ноя 2015, 20:54
Angel71 писал(а):от чего питаете? может тока нехватает или на плате выкручено слишком низкое ограничение тока (не частите подстраивать, там подстроечный потенциометр, у них очень низкий ресурс). ну мультиметр в разрыв питания (у вас эт "20v") драйвера моторов и посмотрите сколько потребляет. ну и может провода слишком тонкие где и нужно на более толстые поменять.
1. Питание от зарядки под ноутбук (20V) - для запитки двигателя (подключая батарейку типа крона на 9v получал точно такой же результат)
2. Зарядка для мобильных телефонов (5V) - для запитки Ардуины (подключал ее и напрямую от микро ЮСБ через компьютер - точно такой же результат)
Следовательно с питанием должно быть все хорошо.
Потенциометр на драйвере я крутил всего лишь раз - результат тот же.
Провода преимущественно те, что продаются специально для пайки подобных схем. Есть еще чуть более тонкие но они медные. Не думаю, что дело в них.
Когда просто прикасаюсь к драйверу он начинает нормально крутить и работать так как нужно. При этом я ничего не придавливаю откуда можно было бы сделать ошибочный вывод о плохой пайке или вовсе отвалившихся контактах. Так же замечу, это второй мой драйвер в этой схеме, с первым была такая же ситуация. Отсюда можно сделать вывод что проблема не в драйвере.
Последний раз редактировалось
Stiven 14 ноя 2015, 19:50, всего редактировалось 1 раз.
Medtech » 13 ноя 2015, 21:11
Соединить два источника питания по земле, от этой точки двумя поводами соединить контроллер и драйвер.
У блока питания от ноутбука сетевой провод с заземляющим контактом? Как выполнена проводка в квартире? каким удлинителем всё это подключено?
Вы своей ёмкостью тела снимаете какие-то наводки, заземляете ваши устройства уровень помех снижается всё работает.
Angel71 » 13 ноя 2015, 21:21
Stiven, если насос способен прокачивать 1000 литров в секунду, а у вас труда, через которую максимум литр в секунду пропустить можно, что будет, вы получите на выходе 10 литров в секунду? это только один момент. берите и внимательно перечитывайте написанное, может в данном случае что-то из этого. потом, может быть другие варианты подыматься будут.
Stiven » 13 ноя 2015, 21:25
Medtech писал(а):Соединить два источника питания по земле, от этой точки двумя поводами соединить контроллер и драйвер.
У блока питания от ноутбука сетевой провод с заземляющим контактом? Как выполнена проводка в квартире? каким удлинителем всё это подключено?
Вы своей ёмкостью тела снимаете какие-то наводки, заземляете ваши устройства уровень помех снижается всё работает.
Я пробовал менять источник от блока питания (20v) на батарейку типа крона (9v) а Ардуино запитывать напрямую через ее встроенный мини юсб от компьютера - ситуация точно такая же!
Попробовал сейчас соединить минус обоих источников. Все то же самое
Добавлено спустя 52 секунды:Angel71 писал(а):Stiven, если насос способен прокачивать 1000 литров в секунду, а у вас труда, через которую максимум литр в секунду пропустить можно, что будет, вы получите на выходе 10 литров в секунду? это только один момент. берите и внимательно перечитывайте написанное, может в данном случае что-то из этого. потом, может быть другие варианты подыматься будут.
Я прокомментировал только то, что понял из ваших слов. Еще раз повторюсь я совсем новичек и многие вещи мне просто не понятны.
Dmitry__ » 13 ноя 2015, 21:39
Ты пальцами делаешь подтяжку пинов к нужному уровню. Где залитый скетч? Смотри сигналы reset, enable и sleep, они не должны болтаться в воздухе, в том числе и программными настройками ардуины. вообще странный завод пинов reset и sleep в дуину, их обычно просто обьединяют. Вощем, показывай скетч в дуине...
вот похожая тема:
forum86/topic14992.html
Stiven » 13 ноя 2015, 21:59
Dmitry__ писал(а):Ты пальцами делаешь подтяжку пинов к нужному уровню. Где залитый скетч? Смотри сигналы reset, enable и sleep, они не должны болтаться в воздухе, в том числе и программными настройками ардуины. вообще странный завод пинов reset и sleep в дуину, их обычно просто обьединяют. Вощем, показывай скетч в дуине...
вот похожая тема:
forum86/topic14992.html
Скетч я тестовый залил для проверки отклика двигателя. А свой дописал только на стадии работы с джойстиком
Тем не менее вот что сейчас в ардуинке:
- Код: Выделить всё • Развернуть
const int stepPin = 11;
const int dirPin = 12;
void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
}
void loop() {
digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
// Makes 200 pulses for making one full cycle rotation
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000); // One second delay
digitalWrite(dirPin,LOW); //Changes the rotations direction
// Makes 400 pulses for making two full cycle rotation
for(int x = 0; x < 400; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000);
}
Dmitry__ » 13 ноя 2015, 22:32
Stiven писал(а):Тем не менее вот что сейчас в ардуинке:
Ну? И чего ты хочешь? В скетче вообще не настраиваются пины sleep и reset:
Stiven писал(а):void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
}
Вот у тебя и уходит в слип при отсутствии пальцев на драйвере...
Stiven » 13 ноя 2015, 22:51
Dmitry__ писал(а):Stiven писал(а):Тем не менее вот что сейчас в ардуинке:
Ну? И чего ты хочешь? В скетче вообще не настраиваются пины sleep и reset:
Stiven писал(а):void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
}
Вот у тебя и уходит в слип при отсутствии пальцев на драйвере...
Огромное спасибо! Вы были действительно правы! Я механически замкнул SLEEP и RESET и все ЗАРАБОТАЛО! Еще раз спасибо! Теперь со спокойной душой сажусь за написание кода.
Dmitry__ » 13 ноя 2015, 23:02
С тебя пиво
Angel71 » 14 ноя 2015, 03:16
Stiven, если не знаете и не интересоваться, так и можете никогда и не узнать.
Stiven » 14 ноя 2015, 19:47
Dmitry__ писал(а):С тебя пиво
Хах, еслиб я его пил
Добавлено спустя 8 минут 37 секунд:Angel71 писал(а):Stiven, если не знаете и не интересоваться, так и можете никогда и не узнать.
Еще неделю назад я понятия не имел что такое контроллер, драйвер, шаговый двигатель и вообще программирование контроллеров.
Все с чем я пришел это: идея и полугодовой опыт в программировании на JavaScript и C#
Нашел информацию про Arduino, разобрался во всех типах приводов, купил паяльник, олово, тестер и все комплектующие.
Сейчас все работает именно так как я хочу: Две скорости, переключающиеся нажатием на джойстик и плавная ее регулировка + реверс.
Так что сказать что я не интересовался все это время - немного сложно
Ps
Если будет нужен код, могу скинуть.
Angel71 » 14 ноя 2015, 21:10
очень трогательная история, только не по делу.