Arduino Uno + А4988 + nema 17 Не понятно почему все работает через 5ю точку.

Mike1305

✩✩✩✩✩✩✩
14 Мар 2021
3
0
Добрый день. Мне необходимо запустить Nema 17 через Arduino Uno. Использую драйвер А4988. И не понимаю что происходит.
Собираю все по схеме, которая указана на всех сайтах на эту тему.

circuit-diagram-for-controlling-nema17-stepper-motor-with-arduino.png.
Использую скетч Alex'a

C++:
// крутим мотор туда-сюда плавно с ускорением
#include "GyverStepper.h"
GStepper< STEPPER4WIRE> stepper(3600, 3, 2);
// мотор с драйвером ULN2003 подключается по порядку пинов, но крайние нужно поменять местами
// то есть у меня подключено D2-IN1, D3-IN2, D4-IN3, D5-IN4, но в программе поменял 5 и 2
void setup() {
  Serial.begin(115200);
  // режим следования к целевй позиции
  stepper.setRunMode(FOLLOW_POS);
  // установка макс. скорости в шагах/сек
  stepper.setMaxSpeed(400);
  // установка ускорения в шагах/сек/сек
  stepper.setAcceleration(100);
}
void loop() {
  // просто крутим туды-сюды
  if (!stepper.tick()) {
    static bool dir;
    dir = !dir;
    stepper.setTarget(dir ? -400 : 400);
  }

}
Так вот, при всем этом, если питание Arduino идет от USB компьютера, то мотор просто жужит, а если от блока питания 12В то совершает какие-то не членораздельные движения.
Но, если я вообще уберу из схемы stepPin, а на его место воткну dirPin, то мотор начинает двигаться, с вибрацией, но все же двигаться, но направление не меняет.
Собственно вопрос, я тупой или Arduino лагает?
 

bort707

★★★★★★✩
21 Сен 2020
3,066
914
Так вот, при всем этом, если питание Arduino идет от USB компьютера, то мотор просто жужит, а если от блока питания 12В то совершает какие-то не членораздельные движения.
по схеме непонятно, как питается ардуино при питании всей схемы от 12в. И откуда при этом питаются моторы
 

Mike1305

✩✩✩✩✩✩✩
14 Мар 2021
3
0
по схеме непонятно, как питается ардуино при питании всей схемы от 12в. И откуда при этом питаются моторы
Моторы питаются через драйвер, на него я подаю 12в.
Ардуина запитывается двумя разными способами, описанными у меня в посту, либо через usb 2.0, либо через дополнительный блок питания 12в.
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
178
51
на всех правильных сайтах указана правильная схема подключения этого драйвера.
перед работой необходимо на драйвере выставить рабочий ток.
тынц
 

Mike1305

✩✩✩✩✩✩✩
14 Мар 2021
3
0
на всех правильных сайтах указана правильная схема подключения этого драйвера.
перед работой необходимо на драйвере выставить рабочий ток.
тынц
Ток выставил. Перед тем как написать сюда, я просмотрел несколько страниц результатов поиска в яндексе, нигде нет ответа.
 

bort707

★★★★★★✩
21 Сен 2020
3,066
914
Код примера мне совсем не нравится.
Вы непрерывно долбите мотор туда-сюда, он же просто не успевает повернутся. Что вы хотите от него добиться?

Попробуйте без библиотеки. Это же Степ-Дир драйвер, там логика простейшая.
Выставляете на пине Dir высокий уровень, подаете на STEP 100 импульсов - мотор делает 100 шагов в одну сторону. Потом выставляет на Dir низкий уровень, даете еще 100 импульсов - мотор делает 100 шагов обратно. Проще не бывает.
 
Изменено:

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@Mike1305, почему количество шагов на оборот 3600? У таких моторов обычно 200, на драйвере у Вас полный шаг выставлен (на схеме).
если я вообще уберу из схемы stepPin, а на его место воткну dirPin, то мотор начинает двигаться
если двигается это хорошо, значит подключили скорее всего правильно. В таком случае импульс для шага возникает в момент изменения вращения (когда изменяется dir в коде). Я бы попробовал всё же скорость убавить, сейчас у Вас 2 оборота в секунду. Ну или переведите драйвер в микрошаг 1/16, подключив +5В на MS1, MS2, MS3. Так же пин enable на таких драйверах лучше не оставлять неподключенным, киньте на него землю.

upd. не заметил ускорений. Тогда dir изменяется довольно редко, чтобы можно было назвать это вращением двигателя. Что-то тут не так.
если я вообще уберу из схемы stepPin, а на его место воткну dirPin, то мотор начинает двигаться
вот тут поподробнее. Что именно делаете? Пин STEP драйвера подключаете к пину 2 ардуино, а DIR драйвера ни к чему не подключен? Тогда мотор должен иногда тикать, делая один шаг примерно раз в 4 секунды. Если же DIR драйвера подключаете к пину 3, и мотор вращается, то тогда, скорее всего, неправильно подключен двигатель к драйверу. Меняйте провода местами, пока не заработает с правильным подключением (DIR - пин 2, STEP - пин 3)
 
Изменено: