Тима писал(а):подвинуть на 100мм(к примеру), а как сделать так, чтоб двиг крутился до срабатывания концевика?
Ставиш движение заведомо чтобы он дошёл до концевика, а потом
если быстро как аварийный останов,то нужно вызвать Drive.emgStop();
если плавно, то Drive.stop()
Олег А писал(а):
Drive.setFreq(50)
Drive.setParam(0,50,1,1)
Drive.setFreq(100)
Drive.setParam(0,100,1,1)
в этих примерах скорость будет одинаковой? или отличаться в 2 раза?
А размерность шага где? ладно пусть будет одинаковой и равна 1мм
тогда максимальная скорость =freq*dim/2 или
1)50(1/с)*1(мм)/2=25мм/с
2)100(1/с)*1(мм)/2=50мм/с
Олег А писал(а):Глянул в библиотеку AccelStepper, также сделана на float, в итоге потолок порядка 4000Hz на 16MHz тактовой.
Грустно.
А какую частоту может выдать андруино если поставить цикл
типа
while(1)
{
out(1);
out(0);
}
Я не думаю, что будет даже и 500КГц. Кто нибудь померьте!
Плюс ещё на до учитывать, что нужно обеспечивать какуе-то логику, доп расчёты и пр.
Также нет необходимости опрашивать входы с такой же частотой скажем в 4000Гц. Достаточно будет и 1КГц....
А так вообще самая "тяжёлая" или "затратная" операция это деление... Но без неё никуда...
Короче,надо померить "потолок" частоты по примеру который был выше. А уже потом смотреть...
Я брал плату себе для опытов типа как андруино (FEZ Panda 2), так она выдавала максимум около 2КГц...
Также на производстве используется контроллер(
http://icpdas.ru/good/show/17384/1872754/), так у него потолок 500Гц.
я хочу сказать, что максимальная частота определяется не частотой процессора, а портом ввода-вывода...