Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
aeromash
ЛА
Зарегистрирован: 03.01.2009
Сообщения: 2833 Благодарности: 108
|
Добавлено: Вт Фев 23, 2016 14:01 Заголовок сообщения: |
|
|
_________________ Когда на свет появляется истинный гений, то узнать его можно хотя бы потому, что все тупоголовые объединяются в борьбе против него. Дж. Свифт
Хочу шапку Перельмана, жилетку Вассермана и ботинки Эйнштейна!
(SKYPE - yuri.rabishko, МТС - +375-29-7518860 Юрий Рабышко)
"Все пришельцы в Россию будут гибнуть под Смоленском" - фильм "Формула любви"
|
|
Вернуться к началу |
|
|
petrovicch
ЛА
Зарегистрирован: 14.09.2013
Сообщения: 501 Благодарности: 26
Откуда: Беларусь, г.Ивацевичи
|
Добавлено: Вс Мар 27, 2016 14:56 Заголовок сообщения: |
|
|
Всем привет!
Пришли мой драйвер и ардуино нано из Китая. Вчера до двух ночи "колхозил" плату, собирал все до кучи, читал документацию.
Сегодня таки завел всю конструкцию. Тикает!
Собрал по схеме на фото. Перемычка стоит на М1. Если я верно понял даташит - это режим 1\4 шага. Перемычку поставил экспериментально. Именно в этом режиме мой мотор максимально четко "шагает" и усилие на валу довольно приличное. Ток выставил в районе 0,5А. Мотор теплый.
Скетч загружен такой: Цитата: | int Motor1dir = 12;
int Motor1step = 13;
void setup ()
{
pinMode(Motor1dir, OUTPUT);
pinMode(Motor1step, OUTPUT);
}
void loop ()
{
digitalWrite(Motor1dir, HIGH);
digitalWrite(Motor1step, LOW);
for (int i=0;i<1000; i++)
{
delay(200);
digitalWrite(Motor1step, HIGH);
delay(200);
digitalWrite(Motor1step, LOW);
}
delay(200);
} |
Один полный оборот вал делает за 153,5 сек, а мне нужно - 173,913 сек.
Подскажите, кто знает, что поменять в скетче для этого?
_________________ SW BKP25012 DOB + DIY EQ Platform, Celestron SkyMaster 20x80 (71018)
|
|
Вернуться к началу |
|
|
Ветер
ЛА
Зарегистрирован: 21.08.2014
Сообщения: 1266 Благодарности: 132
|
Добавлено: Вс Мар 27, 2016 15:40 Заголовок сообщения: |
|
|
Скорость определяется паузой между вот этими командами.
digitalWrite(Motor1step, HIGH);
-- пауза
digitalWrite(Motor1step, LOW);
Все остальные паузы можно убрать (они не нужны) и подбирать длительность этой в районе 450 мс.
|
|
Вернуться к началу |
|
|
petrovicch
ЛА
Зарегистрирован: 14.09.2013
Сообщения: 501 Благодарности: 26
Откуда: Беларусь, г.Ивацевичи
|
Добавлено: Вс Мар 27, 2016 17:59 Заголовок сообщения: |
|
|
Спасибо, Ветер! Получается.
А что дает строка: for (int i=0;i<1000; i++) ?
_________________ SW BKP25012 DOB + DIY EQ Platform, Celestron SkyMaster 20x80 (71018)
|
|
Вернуться к началу |
|
|
Deimos
Site Admin
Зарегистрирован: 10.07.2007
Сообщения: 6186 Благодарности: 75
|
Добавлено: Вс Мар 27, 2016 19:05 Заголовок сообщения: |
|
|
Выполнить последовательность действий в скобках { ... } за этой строкой 1000 раз.
_________________ Алексей
Профи-диванщик с опытом, есть диплом А4 в рамке.
|
|
Вернуться к началу |
|
|
Deimos
Site Admin
Зарегистрирован: 10.07.2007
Сообщения: 6186 Благодарности: 75
|
Добавлено: Вс Мар 27, 2016 19:10 Заголовок сообщения: |
|
|
Здесь делается 1000 шагов, по 400 мс на шаг, а потом делается задержка в дополнительных 200 мс.
Чтобы сделать скорость, близкую к нужной, надо в цикле
Код: | for (int i=0;i<1000; i++)
{
delay(200);
digitalWrite(Motor1step, HIGH);
delay(200);
digitalWrite(Motor1step, LOW);
} |
заменить задержки:
Код: | for (int i=0;i<1000; i++)
{
delay(176);
digitalWrite(Motor1step, HIGH);
delay(177);
digitalWrite(Motor1step, LOW);
} |
Значения разные, так и задумано. Получится оборот за 173,94 секунды.
А ещё я бы удалил последний delay(200) в коде, он вряд ли нужен вообще там.
_________________ Алексей
Профи-диванщик с опытом, есть диплом А4 в рамке.
|
|
Вернуться к началу |
|
|
petrovicch
ЛА
Зарегистрирован: 14.09.2013
Сообщения: 501 Благодарности: 26
Откуда: Беларусь, г.Ивацевичи
|
Добавлено: Вс Мар 27, 2016 20:07 Заголовок сообщения: |
|
|
Deimos, сделал по вашему - получился оборот еще быстрее - 2 мин и около 10 секунд.
Буду подбирать экспериментально.
upd: сделал по совету Ветра
Цитата: | for (int i=0;i<1000; i++)
{
digitalWrite(Motor1step, HIGH);
delay(450);
digitalWrite(Motor1step, LOW);
} |
Вышел оборот за 2 мин 52,6 сек при нужных 2 мин 53,9 сек. Истина где-то рядом.
_________________ SW BKP25012 DOB + DIY EQ Platform, Celestron SkyMaster 20x80 (71018)
|
|
Вернуться к началу |
|
|
Andrey Prokopovich
ЛА
Зарегистрирован: 29.11.2007
Сообщения: 3423 Благодарности: 209
|
Добавлено: Вс Мар 27, 2016 20:45 Заголовок сообщения: |
|
|
Рекомендую пользовать библиотеку AccelStepper для управления ШД.
_________________ ©Но что-то, кажется, идет не так...
|
|
Вернуться к началу |
|
|
Deimos
Site Admin
Зарегистрирован: 10.07.2007
Сообщения: 6186 Благодарности: 75
|
Добавлено: Вс Мар 27, 2016 21:19 Заголовок сообщения: |
|
|
Тьфу, ошибся в знаке
447 попробуйте.
_________________ Алексей
Профи-диванщик с опытом, есть диплом А4 в рамке.
|
|
Вернуться к началу |
|
|
petrovicch
ЛА
Зарегистрирован: 14.09.2013
Сообщения: 501 Благодарности: 26
Откуда: Беларусь, г.Ивацевичи
|
Добавлено: Вс Мар 27, 2016 21:22 Заголовок сообщения: |
|
|
Цитата: | Рекомендую пользовать библиотеку AccelStepper для управления ШД. |
А что мне это даст? Погуглил, но толком ничего не понял. Нужно с программированием плотнее разбираться. Только нет пока достаточно времени...
Мне ж в принципе нужна одна функция - питание включил и шаговик бесконечно вращается с заданной скоростью.
Сейчас подобрал задержку - delay(453). Получил оборот за 2 мин 53,8 сек при нужных 2 мин 53,9 сек. Надеюсь такая точность, с учетом всех погрешностей достаточна?
Понимаю - съемка покажет.
_________________ SW BKP25012 DOB + DIY EQ Platform, Celestron SkyMaster 20x80 (71018)
|
|
Вернуться к началу |
|
|
Andrey Prokopovich
ЛА
Зарегистрирован: 29.11.2007
Сообщения: 3423 Благодарности: 209
|
Добавлено: Вс Мар 27, 2016 21:31 Заголовок сообщения: |
|
|
Ну, если ничего из это не нужно, то не даст ничего )
Цитата: |
Supports acceleration and deceleration
Supports multiple simultaneous steppers, with independent concurrent stepping on each stepper
API functions never delay() or block
Supports 2, 3 and 4 wire steppers, plus 3 and 4 wire half steppers.
Supports alternate stepping functions to enable support of AFMotor
Supports stepper drivers such as the Sparkfun EasyDriver (based on 3967 driver chip)
Very slow speeds are supported |
_________________ ©Но что-то, кажется, идет не так...
|
|
Вернуться к началу |
|
|
Ветер
ЛА
Зарегистрирован: 21.08.2014
Сообщения: 1266 Благодарности: 132
|
Добавлено: Вс Мар 27, 2016 22:17 Заголовок сообщения: |
|
|
Можно перейти на функцию delayMicroseconds и подбирать дальше в микросекундах. А для начала через пропорцию вычислить нужное значение.
|
|
Вернуться к началу |
|
|
Deimos
Site Admin
Зарегистрирован: 10.07.2007
Сообщения: 6186 Благодарности: 75
|
Добавлено: Вс Мар 27, 2016 22:54 Заголовок сообщения: |
|
|
Только надо учитывать, что у delayMicroseconds есть ограничение интервала сверху, поэтому надо очень аккуратно перебираться на неё.
_________________ Алексей
Профи-диванщик с опытом, есть диплом А4 в рамке.
|
|
Вернуться к началу |
|
|
petrovicch
ЛА
Зарегистрирован: 14.09.2013
Сообщения: 501 Благодарности: 26
Откуда: Беларусь, г.Ивацевичи
|
Добавлено: Вс Мар 27, 2016 23:13 Заголовок сообщения: |
|
|
Наверное не проканает эта команда. Вот чего пишут:
Цитата: | delayMicroseconds()
Останавливает выполнение программы на заданное в параметре количество микросекунд (1 000 000 микросекунд в 1 секунде).
В данной версии Ардуино максимальная пауза воспроизводимая корректно — 16383. Возможно это будет изменено в следующих версиях Arduino. Для остановки выполнения программы более чем на несколько тысяч микросекунд рекомендуется использовать функцию delay(). |
Плучается если мне нужно 453100 мксек - то такой параметр нельзя задать. Или в моем случае нужно писать так?
Цитата: | {
digitalWrite(Motor1step, HIGH);
delay(453);
delayMicroseconds (100);
digitalWrite(Motor1step, LOW);
} |
_________________ SW BKP25012 DOB + DIY EQ Platform, Celestron SkyMaster 20x80 (71018)
|
|
Вернуться к началу |
|
|
Ветер
ЛА
Зарегистрирован: 21.08.2014
Сообщения: 1266 Благодарности: 132
|
Добавлено: Вс Мар 27, 2016 23:14 Заголовок сообщения: |
|
|
О, действитель, а я и не знал. Леша, когда кнопку "спасибо" будем к форуму приделывать? Давно просил) Дай мне доступ, я сам все сделаю
Да, можно комбинировать
|
|
Вернуться к началу |
|
|
petrovicch
ЛА
Зарегистрирован: 14.09.2013
Сообщения: 501 Благодарности: 26
Откуда: Беларусь, г.Ивацевичи
|
Добавлено: Вс Июл 03, 2016 20:36 Заголовок сообщения: |
|
|
Отрицательный результат - тоже результат.
Сколько времени угрохал на редуктор: вымыл, выкрасил, свежей смазки положил, собрал...
А он зараза периодически подклинивает. В общем ниразу не годится для моих нужд. Нужно было слушать сведущих людей.
Буду смотреть в сторону амбарки. Привод то уже есть. Шестеренку только подберу.
_________________ SW BKP25012 DOB + DIY EQ Platform, Celestron SkyMaster 20x80 (71018)
|
|
Вернуться к началу |
|
|
Ветер
ЛА
Зарегистрирован: 21.08.2014
Сообщения: 1266 Благодарности: 132
|
Добавлено: Вс Июл 03, 2016 23:08 Заголовок сообщения: |
|
|
Пасту ГОИ с крупными фракциями разогреть, смешать со смазкой, выставить небольшой прижим и крутить несколько часов, периодически поджимая ЧП. На мой взгляд, проблема подклинивания уйдет.
|
|
Вернуться к началу |
|
|
petrovicch
ЛА
Зарегистрирован: 14.09.2013
Сообщения: 501 Благодарности: 26
Откуда: Беларусь, г.Ивацевичи
|
Добавлено: Вс Июл 03, 2016 23:23 Заголовок сообщения: |
|
|
Может позже. Сейчас не могу в сторону редуктора смотреть...
_________________ SW BKP25012 DOB + DIY EQ Platform, Celestron SkyMaster 20x80 (71018)
|
|
Вернуться к началу |
|
|
|