Шаговый двигатель 28BYJ-48 (точка отсчёта)

Приветствую форумчане!
В своем проекте (управление обратным клапаном вытяжки) применяю шаговый двигатель 28BYJ-48. Как известно у него нет нулевой точки отсчёта. Нашёл пару вариантов контроля - установка механических концевиков; датчик холла в связке с магнитом.
Может быть подскажите, какие-то варианты контроля положения моторчика двигателя?

берете готовую библиотеку #include<AccelStepper.h>
создаете переменную для подсчета шагов, и задаете с помощью библиотеки выше угол на который надо идти… учитывайте что в обратном направлении угол будет со знаком - , а так же что можно сделать два полных оборота и более…

#include <Stepper_28BYJ.h>
// установить количество шагов 4078 для мотора 
#define STEPS 4078
// задать управляющие пины (Pin) на плате контроллера Ардуино
Stepper_28BYJ stepper(STEPS, 8, 9, 10, 11);
void setup()
{
  // установить скорость вращения двигателя 13 об/мин
  // как максимальное значение
  stepper.setSpeed(13);
}
void loop()
{
  stepper.step(4000); // Задать вращение 4000 шагов по часовой стрелке
  stepper.step(-4000);// Задать вращение 4000 шагов против часовой стрелки
// если одну из строк задания вращения исключить
// мотор станет вращаться без остановки
}

вместо 4000 сделайте переменную, и следите сколько шагов он сделал, или задавайте координаты куда ему добраться…

1 лайк

Либо вы меня не поняли, либо я вас.
Нужна инициализация заданной точки отсчёта для шаговика.
Конкретный пример: шаговик вращается от 0 до 45 гр по кнопке. Угол поворота на шаговике 25 гр, питание пропадает. Шаговик фактический угол 25 гр. принимает за 0 градусов, а нужно чтобы после подачи питания ардуинка понимала, что угол 25 гр, и нужно перейти в начальную позицию.

У меня есть идея - поставить концевик (только какой выбрать?). При подаче питания шаговик вращается по часовой до сработки концевика установленного в положении 45 гр, а потом уже по алгоритму возвращается назад, на 45 гр., т.е. в точку нуля.

Можно сделать обратным способом: при включении концевик вращается против часовой до сработки стартового концевика (0 гр), и после этого стартует выполнение рабочего алгоритма.

Вы предлагаете программно отслеживать точку нуля, а мне по факту нужно физическое отслеживание начального положения шаговика.

Это общепринятый алгоритм, когда собственного отслеживателя у движка нет. Но, если он вращается только на 0-45 градусов, что мешает ему на ось переменный резистор приклеить? Тогда по напряжению обратной связи можно судить о том, в каком положении находится заслонка.

1 лайк

да, после перезагрузке можно двигаться в нужную позицию, пока не нажмется кнопка (концевик) , далее будет понятна координата, и можно вернуться обратно на то место где пропало питание… и будет понятно где он находится и продолжить… зная в каком месте сейчас находится… концевик любой, сейчас тут только в виде модуля есть…

я на своем принтере вовсе концевики на кнопки заменил… они реагируют на металл

или вы хотели что бы все это за вас сделали, а написали код ?)))

1 лайк

тоже вариант))) если надо сделать не много оборотов не более 360 градусов, то использовать резистор или потенциометр а еще можете купить готовое и приспособить к вашему например электронный штангельциркуль…

1 лайк

Мне - не нужно.

1 лайк

Да, неплохая идея. Компактно.
Угол вращения не более 90 гр.
По сопротивлению получим напряжение обратной связи?

По напряжению. Если включить его крайними выводами между землей и питанием, то с движка можно снимать напряжение пропорциональное углу открытия. Сопротивление 10-20 кОм.
Подводный камень есть один - износостойкость китайских потанцометров.

1 лайк

Не понял: мы говорим про переменный или постоянный резистор?

Какая у них примерная наработка? Не так часто планируется использование шаговика, максимум пару раз в неделю.

Для использования концевиков такого типа, необходимо разрабатывать отдельное крепление, пока в поисках других вариантов.

2 отверстия сделать и вот крепление… я имел в виду такой обычный если что…

1 лайк

Что касается переменного резистора:
Из сообщения первого понял, что предлагаете на вал поставить переменный резистор, и ардуиной считывать его фактическое сопротивление.


Конструкция клапана

Движок есть только у переменного резистора, как ты постоянный вращать-то будешь, чудо?

1 лайк

Ардуина не мериит сопротивление напрямую. А напряжение меряет. Схему рисовать, или сам угадаешь как?

1 лайк

в данном конкретном случае магнит и датчик холла будет оптимален для определения нуля.
переменный резистор, затрахаешься прикручивать к этому движку в такой конфигурации.

1 лайк

Давай лучше схему, разбирать долго будем.
На шаговике +5v, напряжение с обмотки брать, а GND с ардуины (но там еще драйвер)?

Потенциометр - stoom

Вместо лампочки - аналоговый вход Ардуины. Напряжение просто с питания брать.

1 лайк

Справа вывести и закрепить так же как вал мотора к пластине и сё.

1 лайк