標(biāo)題: [求助]單片機(jī)如何控制電機(jī)轉(zhuǎn)動(dòng)的角度? [打印本頁(yè)]

作者: lanyan1340    時(shí)間: 2009-4-9 16:48
標(biāo)題: [求助]單片機(jī)如何控制電機(jī)轉(zhuǎn)動(dòng)的角度?
我現(xiàn)在在學(xué)這方面的知識(shí),關(guān)于控制電機(jī)正反轉(zhuǎn)還有速度的資料都能找得到,但是控制它角度還不知道,請(qǐng)哪位大俠指點(diǎn)一下,
不勝感激!
作者: 寒江侵襲    時(shí)間: 2009-4-9 17:34
我也對(duì)這個(gè)問題發(fā)愁, 我最近這在研究這個(gè),有高手能幫助一下嗎?
作者: 耗子    時(shí)間: 2009-4-9 19:05

知道光敏電阻的原理吧 有光照 和沒光照在上面 它的電阻值是不一樣的
  在碼盤上安裝個(gè)紅外對(duì)管 
    自己做輪子的時(shí)候在上面 打孔 位置調(diào)整好 
   這些資料你應(yīng)該都有吧
 那么  把輸出腳 接 單片機(jī)的 外部中斷
  每個(gè)低電平的時(shí)候  就觸發(fā)一次中斷
在中斷程序里 計(jì)數(shù)變量 count 加1
 那么 在主程序中 當(dāng) 碰到障礙要轉(zhuǎn)彎時(shí) 給電機(jī)設(shè)置好 脈沖
然后 設(shè)置標(biāo)志位 為 SETB F0 ; F0 為1
再給 count 給初值比如 20
然后就 JB F0 $  ;為1就等待
那么在中斷程序里面 你用個(gè)DJNZ COUNT EXIT
判斷碼盤是位檢測(cè)到20次中斷  檢測(cè)到20次了
然后 清標(biāo)志位
然后EXIT
這個(gè)值只是個(gè)假想值 實(shí)際你要根據(jù)你的電源 機(jī)械部分 等 做調(diào)整 就可以 實(shí)現(xiàn)小車 90度 180度 360 度 

當(dāng)然另外還有種方法 也用中斷 不過 是用定時(shí)器T0 或者T1
T0 定時(shí) 50MS 時(shí)溢出  也要設(shè)置一個(gè) 計(jì)數(shù)值 COUNT
在主程序中 當(dāng) 碰到障礙要轉(zhuǎn)彎時(shí) 給電機(jī)設(shè)置好 脈沖
然后 設(shè)置標(biāo)志位 為 1   SETB F0 
然后 給count  給初值 20
然后就 JB F0 $  ;為1等待
在T0或者T1的中斷程序里面 你用個(gè)DJNZ COUNT EXIT
 這就是說是否轉(zhuǎn)了1秒了  轉(zhuǎn)完了 清標(biāo)志位 EXIT
  但是這個(gè)方法有個(gè)缺點(diǎn) 由于機(jī)械部分 和電源 的影響 并不能保證每次轉(zhuǎn)的角度是精確的
 比如你剛沖滿電 他1秒能轉(zhuǎn)180度  但是當(dāng)用了沒有多少電了 它1秒只給你轉(zhuǎn)90度
推薦還是用第一種
  都是些很基礎(chǔ)的知識(shí) 資料網(wǎng)上肯定有
我用通俗的解釋了
如果實(shí)在還是不懂 去看下書上的 中斷 定時(shí) 指令這些  
 


作者: 270576081    時(shí)間: 2009-4-11 11:45
好人真多




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1