Мистика, однако!

Oct 09, 2018 18:10

Вот этим массивом (весь код):

static const U8 usteps[8] = {0b1000, 0b1010, 0b0010, 0b0110, 0b0100, 0b0101, 0b0001, 0b1001};как и раньше пытаюсь генерировать импульсы для движения униполярного шаговика (единичка поджимает соответствующую ногу дарлингтона к земле, и через данную обмотку идет ток). Крутится, но, зараза, делает 4 шага на каждый прогон ( Read more... )

stm8, рукожопие, управление

Leave a comment

Comments 6

aterentiev October 9 2018, 15:35:01 UTC
У тебя там не 4 шага, а 8 полушагов, если я его правильно понял

Reply

eddy_em October 9 2018, 17:15:38 UTC
Погуглил. Дошло. Охренеть, я 10 лет думал, что полная диаграмма - и есть один шаг! Получается, что нужно постоянно хранить счетчик микрошагов и в начале следующего шага врубать предыдущую диаграмму и лишь затем продолжать. Нафиг этот график, оставлю умножение шагов на четыре, все равно перемещения с точностью ±20 шагов - статистическая погрешность.
А уж там, где нужно будет точно двигаться (ровно по одному шагу), буду старые системы биполярных ШД с драйверами использовать.

Reply

aterentiev October 10 2018, 06:07:38 UTC
Вопрос того, как определить значение слова шаг. Для движка это устойчивое состояние, а их в твоей диаграмме 4 (кстати, что би, что уни в этом смысле одинаковы). А так как для маркетинга чем больше, тем лучше, то и считают каждое состояние, а не полный цикл. Ну, оно так и есть, на самом деле, если в устойчивом состоянии без нагрузки убрать питание, ось не сдвинется. Простая физика, катушки и магниты, никакой магии.

Reply

eddy_em October 10 2018, 06:34:25 UTC
> Ну, оно так и есть, на самом деле, если в устойчивом состоянии без нагрузки убрать питание, ось не сдвинется.
Зато хваленые драйверы с разбиением шага рекламируют так, как будто бы у них каждые 1/512 шага - устойчивые положения! Понятно, что снятие питания вызовет поворот ротора в ближайшее стабильное положение, а чтобы стоять в промежуточном состоянии, придется прикладывать напряжение удержания (а это чревато разогревом мотора и драйвера).

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

Reply


ex0_planet October 9 2018, 16:03:19 UTC
Ну тут и есть 4 шага - положения 0, 2, 4 и 6 устойчивые.

Reply

eddy_em October 9 2018, 16:40:12 UTC
Блин, я всегда считал, что устойчивыми являются только положения по окончании всего цикла!
Черт! Сколько уже управлялок ШД наделал неправильных... И рисовал же диаграммы со смещенными синусоидами!!!
Но, что интересно, драйвера с делением шага на 8 за 8 импульсов делают честный шаг. Судя по всему, придется экспериментировать, как мне обеспечить перемещение на один шаг с последующим отключением питания... Ну или можно пойти по более простому пути и работать с учетверенными шагами ☺
Не, надо завязывать с такой фигней и работать с полноценными биполярными движками, управляемыми нормальными драйверами, где не нужно ломать голову над кучей проблем: те же тринамиковские позволяют по I2C или SPI задавать, с какой предельной скоростью, каким рампом на какое количество шагов надо уехать.

Reply


Leave a comment

Up