Приветствую форумчане!
В своем проекте (управление обратным клапаном вытяжки) применяю шаговый двигатель 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 сделайте переменную, и следите сколько шагов он сделал, или задавайте координаты куда ему добраться…
Либо вы меня не поняли, либо я вас.
Нужна инициализация заданной точки отсчёта для шаговика.
Конкретный пример: шаговик вращается от 0 до 45 гр по кнопке. Угол поворота на шаговике 25 гр, питание пропадает. Шаговик фактический угол 25 гр. принимает за 0 градусов, а нужно чтобы после подачи питания ардуинка понимала, что угол 25 гр, и нужно перейти в начальную позицию.
У меня есть идея - поставить концевик (только какой выбрать?). При подаче питания шаговик вращается по часовой до сработки концевика установленного в положении 45 гр, а потом уже по алгоритму возвращается назад, на 45 гр., т.е. в точку нуля.
Можно сделать обратным способом: при включении концевик вращается против часовой до сработки стартового концевика (0 гр), и после этого стартует выполнение рабочего алгоритма.
Вы предлагаете программно отслеживать точку нуля, а мне по факту нужно физическое отслеживание начального положения шаговика.
Это общепринятый алгоритм, когда собственного отслеживателя у движка нет. Но, если он вращается только на 0-45 градусов, что мешает ему на ось переменный резистор приклеить? Тогда по напряжению обратной связи можно судить о том, в каком положении находится заслонка.
да, после перезагрузке можно двигаться в нужную позицию, пока не нажмется кнопка (концевик) , далее будет понятна координата, и можно вернуться обратно на то место где пропало питание… и будет понятно где он находится и продолжить… зная в каком месте сейчас находится… концевик любой, сейчас тут только в виде модуля есть…
я на своем принтере вовсе концевики на кнопки заменил… они реагируют на металл
или вы хотели что бы все это за вас сделали, а написали код ?)))
тоже вариант))) если надо сделать не много оборотов не более 360 градусов, то использовать резистор или потенциометр а еще можете купить готовое и приспособить к вашему например электронный штангельциркуль…
Мне - не нужно.
Да, неплохая идея. Компактно.
Угол вращения не более 90 гр.
По сопротивлению получим напряжение обратной связи?
По напряжению. Если включить его крайними выводами между землей и питанием, то с движка можно снимать напряжение пропорциональное углу открытия. Сопротивление 10-20 кОм.
Подводный камень есть один - износостойкость китайских потанцометров.
Не понял: мы говорим про переменный или постоянный резистор?
Какая у них примерная наработка? Не так часто планируется использование шаговика, максимум пару раз в неделю.
Для использования концевиков такого типа, необходимо разрабатывать отдельное крепление, пока в поисках других вариантов.
Что касается переменного резистора:
Из сообщения первого понял, что предлагаете на вал поставить переменный резистор, и ардуиной считывать его фактическое сопротивление.
Движок есть только у переменного резистора, как ты постоянный вращать-то будешь, чудо?
Ардуина не мериит сопротивление напрямую. А напряжение меряет. Схему рисовать, или сам угадаешь как?
в данном конкретном случае магнит и датчик холла будет оптимален для определения нуля.
переменный резистор, затрахаешься прикручивать к этому движку в такой конфигурации.
Давай лучше схему, разбирать долго будем.
На шаговике +5v, напряжение с обмотки брать, а GND с ардуины (но там еще драйвер)?
Вместо лампочки - аналоговый вход Ардуины. Напряжение просто с питания брать.
Справа вывести и закрепить так же как вал мотора к пластине и сё.