全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4345
推到 Plurk!
推到 Facebook!

8051要如何控制伺服馬達??

答題得分者是:
tku_telent
一般會員


發表:23
回覆:21
積分:8
註冊:2004-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-07 15:46:44 IP:163.13.xxx.xxx 未訂閱
我現在要做一個專題,就是用8051控制伺服馬達的位置和速度,我在網路上有看到一些資料,都是在 8051後再加一個decoder(hctl2020 or hctl2032),再連到伺服馬達上的encoder上,我現在比較不清 楚的是decoder出來的是一個二進位的訊號,0應該是一開始靜止的時後,馬達一直轉動,訊號會一直 增加,那要如何判斷是正轉還是反轉,和轉了幾圈。 我看大部份的人都是用c語言寫8051的,組合語言不好嗎?

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-07 16:15:07 IP:211.22.xxx.xxx 未訂閱
有接HCTL-2020,你的ENCODER應該是標準的.應該有A.B.Z./A./B./Z六條線. 用示波器量看看,A與/A 是反相的訊號.轉動時應該有方波訊號,而當正轉時,A會領先B90度,反轉時B會領先A90度.而每轉一圈Z會輸出一PLUSE. 這樣就可以判斷正反轉以及轉了幾圈了. 組合語言和C語言各有優缺點.C較好寫,較好維護,但效率較差,佔的程式空間較大.組合語言佔的程式空間較小.假設你用的是新的51,FLASH(32K OR 64K)夠,建議用c寫.如果你用的是標準51,空間只有4K或8K,那就用組合語言寫.否則可能會放不下. ------------------------------------ 生命的目的,在幻化出多采多姿的組合。 生活的意義,在捕捉住稍縱即逝的感動。 ------------------------------------
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
tku_telent
一般會員


發表:23
回覆:21
積分:8
註冊:2004-03-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-07 16:49:03 IP:163.13.xxx.xxx 未訂閱
你好,我用的encoder有A.B.Z./A./B./Z和2個GND、1個 5v。 我最後要完成的成果是用pc透過rs232傳命令給8051,來控制馬達正反轉、位置和速度, 那我要怎樣在不用到示波器,只用一些晶片就可由8051知道是正反轉, 在來關於圈數的問題,想請問一下,是不是把Z接到8051,再設一個計數器算Z轉了幾圈?? 謝謝你的回答,我應該是用組合語言來控制。

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-07 16:58:52 IP:211.22.xxx.xxx 未訂閱
要你用示波器只是為了讓你清楚看到ENCODER的輸出波形. 1.判斷正反轉可以用中斷INT1(正緣觸發),由A輸入51,當A=1時如果B=0則為正轉.當A=1時如果B=1 則為反轉. 2.判斷轉幾圈,可以把Z接到51,再設一個計數器算Z轉了幾圈. ------------------------------------ 生命的目的,在幻化出多采多姿的組合。 生活的意義,在捕捉住稍縱即逝的感動。 ------------------------------------
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
系統時間:2024-05-08 8:07:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!