Использовать библиотеку шаговых двигателей с драйвером A4988?
Я хочу использовать эту библиотеку: https://www.arduino.cc/en/Reference/Stepper
#include <Stepper.h>
Здесь показана проводка для моего драйвера:
https://www.pololu.com/product/1182
Из библиотеки я застрял на выводах двигателя:
#define motorSteps 200
#define motorPin1 2 // ШАГОВЫЙ вывод
#define motorPin2 3 // контакт DIR
Stepper myStepper(motorSteps, motorPin1, motorPin2);
Эта библиотека несовместима с этим драйвером шагового двигателя? Или что нужно определить, чтобы он работал?
Более подробную информацию о библиотеке можно найти здесь: http://www.tigoe.com/pcomp /код/схемы/двигатели/шаговые двигатели
Основной раздел моего кода, который работает без библиотеки, таков:
digitalWrite(stepPin, HIGH);
delay(wait);
digitalWrite(stepPin, LOW);
delay(wait);
Тем не менее, двухпроводная часть библиотеки использует MotorPin1 и MotorPin2 каким-то образом, которого я не понимаю:
switch (thisStep) {
case 0: // 01
digitalWrite(motor_pin_1, LOW);
digitalWrite(motor_pin_2, HIGH);
break;
case 1: // 11
digitalWrite(motor_pin_1, HIGH);
digitalWrite(motor_pin_2, HIGH);
break;
case 2: // 10
digitalWrite(motor_pin_1, HIGH);
digitalWrite(motor_pin_2, LOW);
break;
case 3: // 00
digitalWrite(motor_pin_1, LOW);
digitalWrite(motor_pin_2, LOW);
break;
}
https://github.com/arduino-libraries/Stepper/blob/master /src/Stepper.cpp
Как должны быть определены motorPin1
и motorPin2
?
@Adam, 👍2
1 ответ
Эта библиотека несовместима с A4988. Он предназначен для выполнения той же работы, что и A4988. Вы указываете направление шага и инструкцию для шага, и он делает шаг за вас.
Чтобы использовать A4988, вы просто устанавливаете контакт HIGH или LOW для направления, а затем переключаете другой контакт, чтобы сделать его пошаговым. Для этого вам не нужна библиотека.
Однако, если вы хотите абстрагировать его с помощью библиотеки и добавить множество интересных дополнительных функций, вам следует обратить внимание на AccelStepper, который поддерживает двухпроводные драйверы, такие как A4988.
- Как я могу использовать степпер для определенной степени?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Шаговый двигатель не поворачивается/не поворачивается против часовой стрелки
- Шаговый двигатель с концевыми выключателями
- Запустить два степпера одновременно
- Попытка понять постоянную скорость AccelStepper
- Шаговый двигатель - концевой выключатель положения
- Могу ли я запретить библиотеке Stepper удерживать двигатель?