Hi , 各位前輩
今天小弟想使用MSP430內部的PWM來控制風扇的轉速,但是風扇連轉都無法轉,研究了兩三天還是毫無頭緒,所以上版來請教一下前輩們。
目前線路圖如下:
線路簡單來說就是由MSP430G2553 , P1.2拉出一根PWM控制訊號,來連接到後面的達寧頓線路第一級,接著末端負載接著一個5V的風扇,希望能夠透過改變PWM的Duty cycle控制第一級輸入端的電壓,改變IB電流,進而去控制末端風扇的轉速。
目前我去改變PWM的Duty cycle可以看到TP1的電壓量測點有明顯的改變,但是風扇卻連轉都不轉。
PWM的Code如下:
- #include <msp430g2553.h>
- void main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
- P1DIR |= (BIT0|BIT1|BIT2); // P1.2 output
- P1SEL |= BIT2;
- P1SEL |= (BIT0|BIT1|BIT2); // P1.2 TA1 otions
- CCR0 = 300; // PWM Period/2
- CCR1 = 150; // CCR1 PWM duty cycle
- CCTL1 = OUTMOD_6;
- TACTL = MC_1; // up mode
- _BIS_SR(LPM3_bits); // Enter LPM3
- while(1);
- }
复制代码請問各位前輩有任何建議嗎?是不是有地方有錯誤~麻煩大力的鞭一下,謝謝。
此帖出自
小平头技术问答
一周热门 更多>