Accelstepper, A4988, Nemo 17, небольшие проблемки

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем beivev, 4 фев 2016.

Метки:
  1. beivev

    beivev Нуб

    Здравствуйте!
    Необходимо организовать отключение шагового двигателя, когда штора окна достигает определенного положения. В трех местах стоят герконы подключены к ардуино через делитель напряжения, к аналоговому входу. На металлической планке шторы закреплен магнит, ну дальше думаю все понятно.

    Собрал я подобие такой системы и начал испытания.
    До нижнего положения(окно закрыто) все хорошо поднимается двигатель работает стабильно. После он немного ускоряется дергается, потом едет нормально до средней точки(окно открыто на половину), тоже самое при подъеме к верхней мертвой точки(окно открыто), при опускании такая же фигня.
    Я грешу на оставшиеся шаги может они там что-то делают что двигатель не стабильно работает.
    Я ставил в цикл на исполнение 100 шагов, чем их меньше тем он медленнее едет и шумит сильнее, думаю понятно почему.

    b = Stepper1.distanceToGo();
    Проверяя сколько их осталось, вылазит любое количество b.
    Я думал, что функцией Stepper1.move(); прибавить или убавить количество шагов на исполнение в буфере, а она просто, а она просто хранит оставшиеся количество шагов. Ты даешь ей -6 шагов, она их и будет хранить, хотя в ней было 10 шагов. Ставишь ноль будет ноль, но это ситуацию не спасает. Все равно двигатель как-то ускоряется, а потом выравнивает скорость, сначала быстро потом чуть медленнее, но стабильно.

    И еще вопрос такой, после остановки шагового двигателя как снимать напряжение с обмоток? С обычной библиотекой там все просто, а здесь как?
     
  2. viudo

    viudo Нуб

    ШД и называется ШД, что шагами ходит, зачем герконы, зоны какие-то? Либо задайте ему количество шагов, либо в конце пути поставьте свой геркон и по его замыканию остановите (в программе напишите), а не рукой.
     
  3. vvr

    vvr Инженерище

    Отключайте драйвер шаговика
     
  4. beivev

    beivev Нуб

    Как мне его отключать? Разрывать ветвь между Reset и Sleep?
     
  5. beivev

    beivev Нуб

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

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

    Может просто драйвер ресетить постоянно когда нужно поменять направление?
     
  6. viudo

    viudo Нуб

    Step ШД не зависят от DIR. У вас, что за штора? Это я к тому, что меня насторожил вопрос об отключения питания. При остановке ШД драйвер через некое время (менее секунды) переходит в режим удержания, а если мы отключаем питание, то что держит штору?
     
  7. beivev

    beivev Нуб

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

    viudo Нуб

    Вам VVR абсолютно верно написал, я лишь уточню - питание выключайте на драйвер, ну либо на Enable вешайте "нолик", мотор отключится, а холостой ток драйвера думаю небольшой.
     
  9. beivev

    beivev Нуб

    Отлично, спасибо огромное.
    Завтра постараюсь все доделать.
     
  10. Tomasina

    Tomasina Сушитель лампочек Модератор

    AccelStepper умеет программно отключать обмотки. Это на случай, если драйвер не поддерживает ENA.
     
    beivev нравится это.
  11. beivev

    beivev Нуб

    Tomasina, не подскажите какая функция за это отвечает, буду благодарен.
     
  12. Tomasina

    Tomasina Сушитель лампочек Модератор

    Код (C++):
    stepper.disableOutputs();
     
  13. vvr

    vvr Инженерище

    с драйвером тс можно делать что угодно - это же полноценный драйвер