Ардуино+шаговый двигатель+драйвер
- Войдите на сайт для отправки комментариев
Пнд, 04/03/2019 - 14:30
Добрый день. Помогите разобраться. Есть два двигателя разных и к ним 2 драйвера.
Это первый :

Это второй

И драйвер к нему.

Для их упраления использую Ардуино Nano.
Первый двигатель питаю 60в блоком питания на 20А.
Второй, что по меньше 24В. на 15А.
Скетч для них использую один и тот же. С использованием кнопки. Вначале крутится в одну сторону, при нажптии крутится в обратную.
Теперь проблема:
На маленьком двигателе программа работает, а на большом (более мощном с энкодером) не работает. Видно, что дергается немного, но не крутится. Подключение самое обычное что на одном, что на другом. Но один работает, а другой нет. Помогите разобраться. С меня магарыч на карту.
void setup() { pinMode(8, OUTPUT); // вывод в режим вывода pinMode(9, OUTPUT); // то же digitalWrite(8, HIGH); // низкий уровень на DIR – крутим против часовой стрелки digitalWrite(9, LOW); // низкий уровень на STP – начальная установка } void loop() { digitalWrite(9, HIGH); //формируем импульс 1 мс на STP delay(1); digitalWrite(9, LOW); delay(1); }На этой программе работают оба двигателя
На этой программе работают оба двигателя
Так работает или нет? Если у вас две программы - выкладывайте обе. В этом коде нет кнопки и нет изменения вращения, про которые вы пишете
А на этой только маленький
/* Вариант с ручным управлением ----------------------------------------- */ int spd1 = 3; // НАСТРОЙКА СКОРОСТИ двигателя (больше цифра - медленнее крутит) //------------------------------------------------------ // пины подключения драйверов -------------------------- int dirpin1 = 8; //пин направления int steppin1 = 9; //пин шага int en1 = 10; // пин удержания int imp = 5 ; //длительность импульса int mot1plus = 5; int mot1minus = 7; //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx void setup() { //Serial.begin(9600); // двигатель 1 pinMode(dirpin1, OUTPUT); //направление pinMode(steppin1, OUTPUT);//шаг //pinMode(en1, OUTPUT); digitalWrite(dirpin1, LOW); // направление digitalWrite(steppin1, LOW); // отключаем //digitalWrite(en1, HIGH); // отключаем удержание pinMode(mot1plus, INPUT_PULLUP); pinMode(mot1minus, INPUT_PULLUP); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx void loop() { // двигатель 1 if ( digitalRead(mot1plus)== HIGH ) //крутим вперёд { // digitalWrite(en1, LOW); // включаем удержание digitalWrite(dirpin1, HIGH); // Устанавливаем направление вперёд digitalWrite(steppin1, HIGH); delayMicroseconds(imp); digitalWrite(steppin1, LOW); // В этих двух строках LOW и HIGH дается команда шаговому двигателю двигаться delay(spd1); //скорость // digitalWrite(en1, HIGH); // отключаем удержание } if ( digitalRead(mot1minus)== HIGH ) //крутим назад { // digitalWrite(en1, LOW); // включаем удержание digitalWrite(dirpin1, LOW); // Устанавливаем направление назад digitalWrite(steppin1, HIGH); delayMicroseconds(imp); digitalWrite(steppin1, LOW); // В этих двух строках LOW и HIGH дается команда шаговому двигателю двигаться delay(spd1); //скорость // digitalWrite(en1, HIGH); // отключаем удержание } } //КОНЕЦ ПРОГРАММЫу вас по второй программе ни один мотор крутится не должен, потому что при отпущенных кнопках вы постоянно делаете один шаг вперед и один назад
В общем, пишите четко. что вы хотите от программы. Можно общаться по почте ded собака cur-ex.ru
В общем, пишите четко. что вы хотите от программы. Можно общаться по почте ded собака cur-ex.ru
Странно, да - http://arduino.ru/forum/ishchu-ispolnitelya/arduino-shagovyi-dvigatel ?
Это мой второй пост.
Пока нет результата по нему. Даже двигатель не могу нормально запустить
Удивительно. Там дел на полдня и исполнитель нашёлся, как написано в последнем посте.
Удивительно. Там дел на полдня и исполнитель нашёлся, как написано в последнем посте.
наверно код #4 написал :)
Человек нашелся. Вчера пол дня провозились, так и не смогли запустить двигатель. Сейчас я ему пишу, но ответа нет. Возможно он на работе. Я решил время не терять , а попробовать запустить двигатель. А дальше, все норм будет, то человек продолжит писать программу.
Если на первом скетче оба мотора работают, значит вопрос о том, почему прошивка не работает, нужно обратить к исполнителю, а не к общественности. Я так думаю.
А дальше, все норм будет, то человек продолжит писать программу.
код из сообщения #4 этот "человек" написал?
Если на первом скетче оба мотора работают, значит вопрос о том, почему его прошивка не работает, нужно обратить к исполнителю, а не к общественности. Я так думаю.
Поддерживаю. В принципе, пол-суток молчания - это вообще ни о чем. Мало ли какие обстоятельства у человека. Некрасиво сразу бежать жаловаться на форум
Да
Я не забираю его хлеб. Я пытаюсь быстрее найти проблему. Опла остается неизменной
.
код из сообщения #4 этот "человек" написал?
[/quote]
Да
Мне кажется, что будет несправедливо, если Вы заплатите деньги кому-то, а писать прошивку будете самостоятельно. Или если заплатите деньги кому-то, но проблему на общественных началах будет искать b707.
код из сообщения #4 этот "человек" написал?
Да
мдя... без комментариев.
Я вам внес в этот код две незначительные правки - если заработает, отпишитесь. Но дальше, как я уже сказал - вам следует решать вопросы с тем, с кем вы уже начали работу.
Всем спасибо. Программа заработала не без добрых людей.
кто вам код #4 писал ?
хочется знать наших героев .
кто вам код #4 писал ?
хочется знать наших героев .
причем "полдня бился" над этим кодом :)
Р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии