купил моторчик sm-s4309r. не могу заставить его крутить на определенный градус и в нужном направлении. с обычной сервой можно просто указать угол. а как быть тут? по информации амперки, такими приводами можно также управлять с помощью библиотеки Servo, теми же функциями. Небольшое отличие заключается в том, что функция Servo.write(angle) задаёт не угол, а скорость вращения привода. Угол 0° задаёт полный ход в одном направлении, 180° — полный ход в обратном направлении, угол 90° задаёт остановку привода. но у меня так не получается. крутит все время в одну сторону, а останавливает привод если задать 95, а не 90. если не сложно дайте примерчик скетча прокручивания на 360 в одну сторону, остановка и 360 в другую. спасибо
Насколько я понимаю сущность таких серв, то точно сделать поворот на 360 градусов и обратно просто не получится. Остановка при угле 95, насколько я понимаю говорит о том, что требуется калибровка. Серву в этом случае (если не ошибаюсь для случая сервы постоянного вращения) надо подключать так servo.attach(pin, min, max); и подобрать значения min, max, чтобы серва работала должным образом при подаваемых значениях "угла". Дальше можно попробовать замерить время. за которое серва делает полный оборот, запустить в одну сторону, выждать измененное время оборота, остановить, запустить в другую сторону, выждать время оборота, остановить. Насколько я понимаю, иначе никак. Альтернатива - использование ШД с датчиком нулевой позиции. Тогда, выставив по датчику эту позицию во время инициализации, можно считать шаги и крутить ШД в нужное положение (с погрешностью в шаг двигателя), периодически при прохождении нуля сверяя, не сбились ли по какой-то причине.
Туда-сюда лапоть величиной до 10 градусов, как мне кажется, на первой итерации обеспечить можно. А энкодер - это да, может быть решением.
спасибо за советы. а если взять шаговый двигатель, то можно будет крутить его туда-сюда и останавливать в нужной позиции?
да давая ему импульс, ты заставишь его повернуться в нужную сторону на градус установленный производителем.