
Сообщение от
GSA
Во первых не понятно для каких целей Вам необходим тормоз:
- для быстрой остановки (тогда настраивайте время ускорения в режиме замедления, P76, P78 или аналогичный).
- для удержания (используйте ток удержания, P46 или аналогичный)
- удержания при выключенном ШД (отсутствие питания), используйте внешний тормоз (не важно на ЩД или другой)
Данный драйвер прекрасно будет управляться по RS485, про внешние клеммы STEP, DIR и т.д., забудьте, оно Вам не нужно.
Использую аналогичные драйверы по функционалу em2rs-870, 2 года без проблем в круглосуточном режиме.
Добрый день.
Тормоз хочу использовать для удержания стола после достижения точки назначения.
Сейчас как раз изготовители и используют ток удержания, и после того как двигатель перестал "двигаться" до него было не дотронуться - очень горячий....
Стол - это в реальности 2 планки на которые крепиться дверь и робот ее красит сначала с одной стороны, затем дает команду на переворот и красит с другой стороны.
Управляет драйвером DM860 Arduino Nano, на нее с робота через релюшки приходят команды вперед и назад.
Это код скейча :
Код:
#include <EncButton.h>
#include "GyverStepper.h"
#define STEPS_PER_180_DEG 3600
GStepper<STEPPER2WIRE> stepper(200, 7, 8, 2);
#define BTN1 4
#define BTN2 A0
Button btn1(BTN1);
Button btn2(BTN2);
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT_PULLUP);
stepper.setRunMode(FOLLOW_POS); // установка режима работы
stepper.setAcceleration(600); // установка ускорения в шагах/секунду^2
stepper.setMaxSpeed(8000); // установка максимальной скорости в шагах/секунду
stepper.autoPower(false); // Отключаем автоотключение (держим питание!)
Serial.println("System ready. Hard holding mode.");
}
void loop() {
btn1.tick();
btn2.tick();
stepper.tick();
// Обработка движения
if (btn1.press()) {
stepper.setTarget(stepper.getCurrent() + STEPS_PER_180_DEG);
Serial.println("Rotating CW");
}
if (btn2.press()) {
stepper.setTarget(stepper.getCurrent() - STEPS_PER_180_DEG);
Serial.println("Rotating CCW");
}
// Жёсткая фиксация позиции (без микрошагов)
if (!stepper.getState()) {
stepper.setTarget(stepper.getCurrent()); // Постоянно обновляем цель = текущая позиция
}
}
Вот я и хочу избавиться от Arduino и оставить только вышеуказанный драйвер и управлять им напрямую от робота используя уже имеющиеся сигналы и заменить ШД на Шаговый двигатель 86HSB118-6004A14 с тормозом