Помогите с пользовательским блоком

Вопросы от новичков
Ответить
Sanbi4
Рядовой
Сообщения: 76
Зарегистрирован: 30 окт 2019, 17:58
Имя: Сергей

Помогите с пользовательским блоком

Сообщение Sanbi4 »

Здравствуйте все.
Мне нужен блок управления шаговым с драйвером на А4988, управление шагами и направлением по аналоговому сигналу.

нечто подобное реализовано в скетче
[spoiler]
#include <Stepper.h>

#define STEPS 100

Stepper stepper(STEPS, 8, 9, 10, 11);

int previous = 0;

void setup() {

stepper.setSpeed(30);
}

void loop() {

int val = analogRead(0);

stepper.step(val - previous);


previous = val;
}
[/spoiler]

Но это под 4х проводной драйвер на вход, который не хочу использовать. По этому скетчу шаговый работает, как серва от потенциометра, что мне и нужно.
Я так понимаю, что пределы смещения можно сделать на масштабировании. В блоке хочется видеть такую логику:
Включаем блок по EN, шаговик вращается в одну сторону (нужна возможность задать направление вращения), упирается в конечник, от него отчитывает нужное количество шагов (для поиска нулевой точки), а после этой процедуры начинает работать по потенциометру.

можете мне помочь?
Аватара пользователя
Ivan_Kornege
Лейтенант
Сообщения: 338
Зарегистрирован: 29 апр 2017, 08:24
Откуда: гАндурас
Имя: Ivan

Помогите с пользовательским блоком

Сообщение Ivan_Kornege »

Sanbi4 писал(а): 14 ноя 2019, 17:43 Включаем блок по EN, шаговик вращается в одну сторону (нужна возможность задать направление вращения), упирается в конечник, от него отчитывает нужное количество шагов (для поиска нулевой точки), а после этой процедуры начинает работать по потенциометру.
нафига такие сложности , надо делать просто блок управления драйвером мотора а там уже всю логику собираешь на флпрог.

Отправлено спустя 4 минуты 10 секунд:
вот из этого кода

Код: Выделить всё

// простая программа управления шаговым двигателем с помощью библиотеки Stepper
// делает 5 оборотов против часовой стрелки со скоростью 1 оборот в секунду
// после паузы 1 сек, делает 5 оборотов по часовой стрелке

#include <Stepper.h>

  Stepper motor(48, 10, 12, 11, 13);  // объект motor, 48 шагов на оборот 

void setup() {
  motor.setSpeed(60);  // скорость 60 об. в мин.
}

void loop() { 
  motor.step(240);  // 5 оборотов (240 шагов) по часовой стрелке
  delay(1000);
  motor.step(-240);  // 5 оборотов (240 шагов) против часовой стрелке
  delay(1000); 
}
взял отсюда
Ответить

Вернуться в «Начинающим»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость