Robofun 機器人論壇

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

W78E58控制TOWARDPRO MG996R 無法控制!!(C語言採計時器中斷)

[複製鏈接]
跳轉到指定樓層
1#
發表於 2011-12-9 23:27:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用計時器中斷的程式輸出PWM給予伺服馬達MG996R作角度控制
起先用S03T的馬達,程式可動
但是換上了MG996R後他就不會動了!!!((通電後瞬間單邊轉個一下子就停了.......
不曉得到底是哪裡出問題,望請各位伺服馬達的高手能幫我這個剛碰伺服馬達的菜鳥解惑...

程式長這樣↓
#include<reg52.h>
sbit PB0=P1^2;
sbit PB1=P1^3;  //定義輸入端
sbit S0=P2^0;
sbit S1=P2^1;  //定義輸出端
unsigned int dutytime0=45536;
unsigned int ton0=10000;
unsigned int toff0=10000;
unsigned int temp0;        // 設定T0參數

main()
{
    EA=0;                      //關閉中段功能(所有中段副程式失效)
    IE|=0x02;                  //開啟計時器中段功能
    TMOD|=0x01;                //設定計時器模式 T0=mode1
   
    temp0=65536-dutytime0 ;   
   
    TH0=temp0/256;             //填入T0高八位
    TL0=temp0%256;         //填入T0低八位

    TR1=1;                 //啟動計時器 T0
    EA=1;         //啟動中段功能,副程式啟動
while(1)
{
if(PB0==PB1==0) ton0=1500 ; //設定初始值為1500ms (伺服馬達中立停止)
if(PB0==0)
    {ton0=2200; //2.2ms 左轉
      //
    }
if(PB1==0)
    {ton0=900;  //0.9ms 右轉
    }
toff0=20000-ton0;

}
}
void timer0_isr(void) interrupt 1//使用計時器0中斷副程式產生PWM
{
    if(S0==1)
    {
    TR0=0;
    temp0=65536-toff0;
    TH0=temp0/256;
    TL0=temp0%256;
    TR0=1;
    S0=0;
    }
    else
    {
    TR0=0;
    temp0=65536-ton0;
    TH0=temp0/256;
    TL0=temp0%256;
    TR0=1;
    S0=1;
    }
}
xu3u4rmp4 該用戶已被刪除
2#
發表於 2011-12-9 23:34:43 | 只看該作者
我也有類似問題
S03T可動MG995不能控制.一開電就轉向單邊到底
我後來是MG995獨立供電.直接接電源供應器.與51電源分開就解決了
3#
 樓主| 發表於 2011-12-9 23:39:28 | 只看該作者
可是我一開始就獨立供電 也有共接地了
但情況依舊是這樣(52採5V 馬達6V
xu3u4rmp4 該用戶已被刪除
4#
發表於 2011-12-9 23:44:23 | 只看該作者
看看接上馬達後.52輸出腳信號是否需要上拉電阻.雖然有內部上拉.但是有碰過類似狀況
5#
 樓主| 發表於 2011-12-9 23:58:09 | 只看該作者
這似乎有些困難@@
家裡沒有上拉電阻 可能要到明天才能出門去買了((家附近沒電子材料行的悲哀ㄒ^ㄒ
不曉得大大是否還有其他方法可以先試試看呢@@?
謝謝^^
xu3u4rmp4 該用戶已被刪除
6#
發表於 2011-12-10 00:09:47 | 只看該作者
不然就輸出接一個緩衝器.再接馬達
7#
 樓主| 發表於 2011-12-10 18:09:58 | 只看該作者
它會動了!!
我給他接74LS244的三態緩衝器
只是因為目前先用麵包板與零散的導線到處亂接
所以馬達抖動的似乎有些誇張((也許是接觸不良吧
但基本上已能達到定位了^^
其餘的應該能自行找出解決的辦法~
所以謝謝大大的幫忙呀!!!
xu3u4rmp4 該用戶已被刪除
8#
發表於 2011-12-11 13:19:04 | 只看該作者
我想到了    我之前直接接51不能控制.後來是用74595去做PWM輸出.之後才能控制
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-29 07:39 , Processed in 0.186105 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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