15.02.2014, 11:17
|
|
Частый гость
Регистрация: 03.12.2010
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Энкодер управляет шаговым двигателем
Уважаемые профессионалы. У меня есть ШД nema 17, энкодер, драйвер, имеющий входы DIR, PUL, ENA. Мне нужно с помощью энкодера управлять ШД по алгоритму: крутим энкодер вправо-вал двигателя также
поворачивается вправо, крутим влево- вал крутится влево, шаг на шаг. Есть МК p16f84a, для этой задачи, наверное, достаточный. Есть программатор. Опыт программирования начальный-asm, где что подглядел. Наверное, подобная задача уже давно реализована, но найти что-то в сети не получилось. Прошу помочь. Только не отсылайте изучать теорию- возраст уже не тот и не давайте напутствия типа " если старый, сиди на печке".
С уважением, Евгений Николаевич.
|
|
|
|
15.02.2014, 11:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.03.2007
Сообщений: 1,362
Сказал спасибо: 85
Сказали Спасибо 620 раз(а) в 375 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
На вскидку, по-моему, можно подключить энкодер через полумосты транзисторов к ШД и без всяких процессоров.
|
|
|
|
15.02.2014, 11:23
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
Могу помочь, но на С. ASM в данном случае не оправдан совершенно.
Нужен любой проц с прерыванием по перепаду на ноге и таймером.
|
|
|
|
15.02.2014, 11:24
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
Сообщение от pambaru
|
На вскидку, по-моему, можно подключить энкодер через полумосты транзисторов к ШД и без всяких процессоров.
|
Да, но если крутить быстро, ШД может не успеть. Нужен буфер команд.
|
|
|
|
15.02.2014, 11:33
|
|
Частый гость
Регистрация: 03.12.2010
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
Сообщение от Easyrider83
|
Могу помочь, но на С. ASM в данном случае не оправдан совершенно.
Нужен любой проц с прерыванием по перепаду на ноге и таймером.
|
Разницы, наверное, нет. Но сам процесс дерганья ножкой на DIR я вроде бы реализовал, А вот смена направления вращения реализованная в драйвере подачей 0 или 1 на PUL не работает.
|
|
|
|
15.02.2014, 11:37
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
А что за драйвер?
|
|
|
|
15.02.2014, 11:39
|
|
Частый гость
Регистрация: 03.12.2010
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
Сообщение от realid
|
А что за драйвер?
|
драйвер DM432C
|
|
|
|
15.02.2014, 12:02
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
Сообщение от tzevgeni
|
Разницы, наверное, нет. Но сам процесс дерганья ножкой на DIR я вроде бы реализовал, А вот смена направления вращения реализованная в драйвере подачей 0 или 1 на PUL не работает.
|
Не совсем понятно, что реализовали. У вас какой режим используется, single-pulse или double-pulse?
|
|
|
|
15.02.2014, 12:12
|
|
Частый гость
Регистрация: 03.12.2010
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
Сообщение от realid
|
Не совсем понятно, что реализовали. У вас какой режим используется, single-pulse или double-pulse?
|
Как-то нашел вот такой вариант
Код:
|
ekd
btfsc RIGHT
goto a1
goto a2
a1
btfsc RIGHT
goto a1
goto a3
a2
btfsc RIGHT
goto a2
goto a4
a3
call delay1
btfsc RIGHT
goto ekd
goto a5
a4
bsf PUL
call delay1
btfsS RIGHT
goto ekd
goto a5
a5
btfsc LEFT
goto a6
goto a7
a6
call delay1
btfsc LEFT
call but
goto ekd
a7
call delay1
btfss LEFT
call but1
goto ekd
but
call delay1
bcf PUL
dd
bsf DIR ; Подаем напряжение на ДРАЙВЕР
call delay1 ; задержка на длительность шага
bcf DIR ; снимаем напряжение
call delay1 ; задержка, определяющая скорость вращения
return
but1
call delay1
bsf PUL
dd1
bsf DIR ; Подаем напряжение на ДРАЙВЕР
call delay1 ; задержка на длительность шага
bcf DIR ; снимаем напряжение
call delay1 ; задержка, определяющая скорость вращения
return |
Последний раз редактировалось realid; 15.02.2014 в 13:03.
|
|
|
|
15.02.2014, 13:05
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Энкодер управляет шаговым двигателем
А теперь посмотрите какое должно быть управление в зависимости от режима. Слева single-pulse, справа double-pulse.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:35.
|
|