Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 8610|回復: 10
打印 上一主題 下一主題

步進馬達轉速控制問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-11-3 21:28:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用L293D Quad Half-H Drivers 控制 4-Phase / 12 Volt Unipolar Stepper Motor \

以下為程式碼 (控制正轉,越來越快)
' {$STAMP BS2}
' {$PBASIC 2.5}
PotCW PIN 0 ' clockwise pot input
PotCCW PIN 1 ' counter-cw pot input
Coils VAR OUTB ' output to stepper coils
' -----[ Constants ]-------------------------------------------------------
NumSteps CON 4 ' use 4-step sequence
' -----[ Variables ]-------------------------------------------------------
idx VAR Byte ' loop counter
stpIdx VAR Nib ' step pointer
stpDelay VAR Byte ' delay for speed control
' -----[ EEPROM Data ]-----------------------------------------------------
' __
' ABAB
' -----
Step1 DATA %1100
Step2 DATA %0110
Step3 DATA %0011
Step4 DATA %1001
' -----[ Initialization ]--------------------------------------------------
Setup:
DIRB = %1111 ' make P4..P7 outputs
stpDelay = 1 ' set step delay

MAIN:
FOR idx = 1 TO 48 ' 1 rev forward
GOSUB Step_Fwd
PAUSE 80
NEXT
FOR idx = 1 TO 48 ' 1 rev forward
GOSUB Step_Fwd
PAUSE 60
NEXT
FOR idx = 1 TO 48 ' 1 rev forward
GOSUB Step_Fwd
PAUSE 40
NEXT
FOR idx = 1 TO 48 ' 1 rev forward
GOSUB Step_Fwd
PAUSE 20
NEXT
FOR idx = 1 TO 48 ' 1 rev forward
GOSUB Step_Fwd
PAUSE 5
NEXT
END

Step_Fwd:
stpIdx = stpIdx + 1 // NumSteps ' point to next step
GOTO Do_Step

Do_Step:
READ (Step1 + stpIdx), Coils ' output new coil data
PAUSE 10 ' pause between steps
RETURN



利用更改pause的數值來控制步進馬達
假如調太低 目進馬達會跟不到 造成在原地跳動的情形
請問該如何解決?

2#
發表於 2010-11-4 14:20:59 | 只看該作者
這棵L293D Quad Half-H Drivers ic 不到一佰元
未免太便宜可能是舊型或簡單
請改用專門控制步進馬達的ic
如:
EDE1204 Bi-Polar Stepper Motor IC
一棵三佰多元
3#
發表於 2010-11-4 14:28:17 | 只看該作者
Rockcliff 4-Axis Motor Driver
Only  $165. US
4#
發表於 2010-11-4 22:41:52 | 只看該作者
步進馬達有一定的工作頻率,
所以,請先確認你產生的頻率沒有超過他的規格。
另外,突然給予太快的頻率也會有此現象,
這時候需要一個加速的機制,讓馬達加速上去,才能達到想要的轉速。
nichal 該用戶已被刪除
5#
發表於 2010-11-6 13:35:49 | 只看該作者
請問每一步都要很準嗎?
如果把八步或十六步當成一步來走
而去延長每八步或每十六步的間隔時間
這樣做可以嗎?
一般來說
步進馬達因為有靜啟動的最低脈波數限制
所以低於靜啟動脈波數的話
就只能用這樣的偷吃步來解決
不然就要外加減速機構來彌補了
6#
發表於 2010-11-8 17:22:55 | 只看該作者
建議先將低速啟動的"定速" 先調好
速度太高或太低都不會轉,只會一直抖而已

低速且定速能夠轉了在開始作加速的部分...
實際速度請用示波器確認輸出的頻率為準, 用 delay 只能知道大概而已
7#
 樓主| 發表於 2010-11-15 15:29:22 | 只看該作者
請問每一步都要很準嗎?
如果把八步或十六步當成一步來走
而去延長每八步或每十六步的間隔時間
這樣做可 ...
nichal 發表於 2010-11-6 13:35



請問如何將 八步或十六步  當一步來走呢?
nichal 該用戶已被刪除
8#
發表於 2010-11-15 15:57:06 | 只看該作者
回復 7# log4518


因為步進馬達要轉起來一定要克服靜啟動脈波數
所以快速並連續驅動16步以克服靜啟動
(或直接把連續送16步當成1步來看)
然後去調整16步可以動起來的脈波速度
這樣每16步之間的延遲時間可視為停止鎖相狀態
如此就可以讓步進馬達以很慢的速度動起來
只是這樣一來步進馬達的解析度就變差了
9#
發表於 2011-3-14 06:54:15 | 只看該作者
回復 2# vegewell


    請問一下,這位大大:
    這顆 EDE 1204 IC哪裡可以買得到阿?
    我找了好久都買不到,可否指示一下?
    謝謝
10#
發表於 2011-3-14 16:26:11 | 只看該作者
本帖最後由 vegewell 於 2011-3-14 16:38 編輯

回復 9# ligalike

這是外國貨:
    http://www.sourceresearch.com/elab/ede1204.cfm
希望你知道怎麼買.
這個ic好像不錯,比較多人使用-->東芝 TB6560 AHQ
11#
發表於 2011-3-14 16:57:04 | 只看該作者
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-21 22:16 , Processed in 0.166060 second(s), 10 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表