會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





如何透過使用驅動IC控制直流馬達正轉、逆轉與停止
新會員
註冊日期:
2015/12/21 18:02
所屬群組:
註冊會員
文章: 5
等級: 1; EXP: 34
HP : 0 / 8
MP : 1 / 31
離線
各位前輩,由於最近想透過18F4520去控制直流馬達

達到正轉、逆轉與停止,由於新手比較沒頭緒,可能麻煩

各位大大指點。

馬達為有刷直流馬達(3V~12V),驅動IC目前為hg7881。

2016/12/29 21:39
轉換PDF檔 列印


Re: 如何透過使用驅動IC控制直流馬達正轉、逆轉與停止
資深會員
註冊日期:
2012/05/04 19:18
所屬群組:
註冊會員
文章: 169
等級: 12; EXP: 5
HP : 0 / 276
MP : 56 / 3945
離線
查一下hg7881 Truth Table你就知道怎麼控制了!

2016/12/30 08:12
轉換PDF檔 列印


Re: 如何透過使用驅動IC控制直流馬達正轉、逆轉與停止
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 13869
等級: 72; EXP: 6
HP : 1065 / 1776
MP : 4623 / 66941
離線
使用 PIC18F4520 的 ECCP 模組就有提供 Helf Bridge & Full Bridge 的驅動。參考圖片的 Full Bridge 的接線。PWM 提供轉速的控制,方向則是切換對腳的導通控制電壓的極性。

附加檔案:



jpg  擷取.JPG (49.44 KB)
16_5865c7c8cffa3.jpg 785X510 px

2016/12/30 10:34
轉換PDF檔 列印


Re: 如何透過使用驅動IC控制直流馬達正轉、逆轉與停止
新會員
註冊日期:
2015/12/21 18:02
所屬群組:
註冊會員
文章: 5
等級: 1; EXP: 34
HP : 0 / 8
MP : 1 / 31
離線
MCU:P18F4520 實驗版:APP025
各位前輩,目前我已經做出來正、逆轉,目前在量測正轉PWM是有波型
(如圖1),但是我再按壓RB0開關(FLT0)為逆轉時卻沒有PWM波型,
想請教一下有什麼問題,程式如下面。

由於目前已經抓到光遮斷訊息,想請教一下如何設定透過兩個開關,來
分別控制正轉與逆轉,之後透過光遮斷(外部中斷)來停止,再麻煩各位
前輩給點提示。

http://imgur.com/VOYd27C Open in new window (圖一)




#include <p18f4520.h> // 微控制器硬體名稱宣告
#include <timers.h> // 納入時間延遲函式庫函式原型名稱定義
#include <pwm.h> // 納入PWM函式庫函式原型名稱定義

// 設定微處理器相關結構位元
#pragma config OSC=HS, WDT=OFF, LVP=OFF

// 宣告時間相關變數並初始化為0
unsigned char sec=0, update=0;

// 宣告TIMER1計時器中斷執行程式
void timer1_isr (void);

#pragma code low_vector=0x18 // 定義高優先中斷執行程式位址
void low_interrupt (void)
{
_asm GOTO timer1_isr _endasm
}

#pragma code

#pragma interruptlow timer1_isr

void timer1_isr (void)
{
PIR1bits.TMR1IF = 0; // 清除中斷旗標
WriteTimer1(0x8000); // 設定計時器初始值
update=1; // 設定更新旗標
}

void main() {
ADCON1=0x0F; // 非常重要!將所有類比腳位設定為數為輸出入腳位
TRISBbits.TRISB0=1; // 將RB0設為輸入,以觸發INT0/FLT0
TRISD=0; // 設定LED
PORTD=0;
OpenPWM1(0x9C); // 設定PWM頻率為4K Hz 0X9C
OpenTimer2(TIMER_INT_OFF&T2_PS_1_4&T2_POST_1_1); //開啟TIMER2 1_4、1_1
PWM1CON=0xFF; // 開啟自動重新開啟並設定空乏延遲時間為128 Tcy 0XFF
SetOutputPWM1 (HALF_OUT , PWM_MODE_1); // 設定為半橋式,所有腳位active high HALF_OUT PWM_MODE_1
SetDCPWM1(0); // 初始化PWM工作周期為0
ECCP1AS=0x42; // 按壓FLT0時馬達為逆轉。

OpenTimer1( TIMER_INT_ON & // 初始化計時器Timer1
T1_16BIT_RW &
T1_SOURCE_EXT &
T1_PS_1_1 &
T1_OSC1EN_ON &
T1_SYNC_EXT_OFF );
WriteTimer1(0x8000); //0x8000=1sec @32786Hz Crystal

PIR1bits.TMR1IF = 0; // 清除中斷旗標
INTCONbits.PEIE = 1; // 啟動週邊中斷功能
INTCONbits.GIE = 1; // 啟動全部的中斷功能

while (1) { // 永久迴圈
if(update) {
PORTDbits.RD0=~PORTDbits.RD0; // 每秒閃爍

++sec; // 將秒數遞加
if (sec >= 60) sec-=60; // 作進位處理

update=0; // 清除更新旗標
}
if (sec == 0)
SetDCPWM1(512); // 開啟PWM,須配合RB0按鍵 //512
else if (sec == 10) // sec == 0
SetDCPWM1(0); // 關閉PWM SetDCPWM1(0)
}
}

附加檔案:



jpg  正轉.jpg (142.50 KB)
48397_5881e4720b3ff.jpg 1477X1108 px

1月20日 18:23:09
轉換PDF檔 列印


Re: 如何透過使用驅動IC控制直流馬達正轉、逆轉與停止
初級會員
註冊日期:
2014/05/28 13:30
所屬群組:
註冊會員
文章: 36
等級: 4; EXP: 76
HP : 0 / 94
MP : 12 / 776
離線
您好!
你的問題有些微矛盾的地方,
建議你先看一下FLT Pin的定義,
藉著你ECCP1AS的設定可以發現你設定FLT Pin為Auto-Shutdown Source,
所以FLT Pin應該是用來Auto-Shutdown PWM Module,
"通常"這隻接腳會接到電流比較器用來做過電流保護,

而上述也有提到FLT Pin是用來Auto-Shutdown,
因此當你按下時才會沒PWM輸出???

至於兩個開關控制正反轉,
只是接腳輸入(硬體)與條件式(軟體)之間的搭配,

再講到光遮斷器也是一樣,
既然已知輸出訊息,
將硬體電路設計好接上外部中斷接腳(ex:INT0,INT1...)
firmware打開中斷開關,設定優先權,清除旗標,完成中斷服務函式
即可達到你要的要求.

最後建議PIC18f4520要使用port B當數位輸入的話
Configuration bits的CONFIG3H裡面的PBADEN
要記得設定為digital IO,
沒記錯的話default設定為analog input

過來人的使用經驗,希望有幫助到你.



引用:

rex8265 寫道:
MCU:P18F4520 實驗版:APP025
各位前輩,目前我已經做出來正、逆轉,目前在量測正轉PWM是有波型
(如圖1),但是我再按壓RB0開關(FLT0)為逆轉時卻沒有PWM波型,
想請教一下有什麼問題,程式如下面。

由於目前已經抓到光遮斷訊息,想請教一下如何設定透過兩個開關,來
分別控制正轉與逆轉,之後透過光遮斷(外部中斷)來停止,再麻煩各位
前輩給點提示。


1月24日 11:51:31
轉換PDF檔 列印


Re: 如何透過使用驅動IC控制直流馬達正轉、逆轉與停止
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 13869
等級: 72; EXP: 6
HP : 1065 / 1776
MP : 4623 / 66941
離線
正轉時是由 P1A 送出 PWM,反轉時由 P1B 送出 PWM 訊號。所以當你要做反轉輸出時,PWM 要改由 P1B 輸出,是否這時沒有設定對?

一步一步來,先搞定 PWM 的輸出,再管光耦合器的動作,基本上這是最簡單的,只要偵測到剛耦合器做動就直接把 PWM 輸出腳設成輸入功能即可,並將PWM duty 歸零。

附加檔案:



jpg  擷取.JPG (47.83 KB)
16_5886d131cbcb8.jpg 1078X537 px

1月24日 11:59:45
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088221 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project