encoder+8051的控制 |
答題得分者是:addn
|
auturmal
一般會員 ![]() ![]() 發表:8 回覆:10 積分:3 註冊:2007-09-06 發送簡訊給我 |
要做的內容為利用ENCODER+8051+步進馬達做倒單擺的控制
ENCODER解碼部分則使用HCTL-2020 CODE大略說明: encoder抓到的值放至p0 ~ 馬達輸出的值放至p1 第18~21為判斷ENCODER是否有轉動(R3為上一次讀取到的值) 若有轉動則進而計算需要補正多少差值 然後跳至正轉或反轉副程式輸出 最後重新抓值循環 馬達解析度:1.8(deg/pulse) encoder解析度:0.36(deg/pulse) HCTL-2020 CLK:4MHz 現下有幾個問題產生: 1)在第39行(NEXT2: JB P0.7,REV) 由於此code是控制直立時的小角度微調 所以轉動的角度並不會超過正負45度 所以當encoder反轉的時候(count由FF開始減少) 輸出的count 的第七碼必定為1 利用這種方式來判斷正轉或反轉 不過實際上轉動的結果則是不管ENCODER正轉或反轉 馬達都只會正轉 為何會這樣?? 2)並且不管ENCDOER轉了幾度 馬達都固定轉1圈半(大約輸出FF個PULSE) 並且會不停的轉動~只是在轉完FF個PULSE後會稍微停頓一下 研判可能是計算後的值並沒放置到輸出PULSE的暫存器裡(R4) 所以在經過DJNZ的指令時會將R4的值清為FF 如此一來就轉了一圈半 想請問這該如何解決?? 3)HCTL-2020的第五隻腳為U/D 看DATASHEET裡的說明是說當COUNT正數的時候輸出高電位 而下數的時候輸出低電位 我接上一個LED燈去觀察變化 結果發現不論ENCODER正轉或反轉 LED燈都是亮的~~代表都是輸出低電位 為何電位不會改變?? 4)較不相關的問題 因為找不到FT5754的DATASHEET 所以想請問此顆IC可容許的極限電壓是多大?? 問題有點長~~希望有人會的話可以指點一下~~3Q |
addn
高階會員 ![]() ![]() ![]() ![]() 發表:64 回覆:221 積分:202 註冊:2005-03-21 發送簡訊給我 |
|
auturmal
一般會員 ![]() ![]() 發表:8 回覆:10 積分:3 註冊:2007-09-06 發送簡訊給我 |
===================引 用 addn 文 章=================== 您好 3)HCTL-2020的U/D問題,請研究一下figure5時序就可明白問題所在 如果一定要由此腳來觀察正反轉,要先接一個d正反器再接到LED U/D<->D,CNT_DCDR<->CLK,Q<->LED 謝謝你的回應~~~~~ ┌─────┐ 1 ─ │ 4MHz │─ 3 1和4串聯電容後 2 ─ │. │─ 4 1接至 5V 4接至GND └─────┘ 3 │ ┌───led───D───U/D┌───┐ │ │ 2020 │ ╦ └───┘ 請問你所說的接法是像這樣嗎?? |
addn
高階會員 ![]() ![]() ![]() ![]() 發表:64 回覆:221 積分:202 註冊:2005-03-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |