課程目標
相關知識
三極管: 是一種控制電流的半導體器件,可以用來放大信號和控制電流的通斷。
三極管的控制原理: 通過小的交流輸入,控制大的靜態直流。
假設三極管是個大壩,大壩有兩個閥門,一個大閥門,一個小閥門。小閥門可以用人力手動打開,大閥門只能通過小閥門的水力打開。
每當要放水的時候,可以手動( 輸入信號 )打開小閥門,小的水流( UBE )流出的時候會沖擊大閥門的開關,大閥門隨之打開,這時候,大的水流( UCE )就可以流出來。
如果不停地改變小閥門開啟的大小,那么大閥門也相應地不停改變,假若能嚴格地按比例改變,那么,完美的控制就完成了。在這里,如果把水流比為電流的話,會更確切,因為三極管畢竟是一個電流控制元件。
**三極管的三個工作區:**截止區,放大區,飽和區。
截止區: 小的閥門開啟的還不夠,不能打開打閥門,這種情況是截止區。
**放大區:**就是水流處于可調節的狀態,小閥門和大閥門之間呈線性關系。
飽和區: 大閥門里放出的水流已經到了它極限的最大流量,這時候再增大小閥門都不會起任何的作用,但是如果減小小閥門的輸入可以讓三極管工作狀態從飽和區返回到放大區。
H橋驅動: H橋通常會包含四個獨立控制的開關元器件,它們通常用于驅動電流較大的負載,比如電機,由于電路長得像大寫字母H,所以稱為叫H橋(H-Bridge)。這里有四個開關元器件Q1
,Q2
,Q3
,Q4
,另外還有一個直流電機M,D1
,D2
,D3
,D4
是MOS-FET的續流二極管;
H橋的開關狀態: 下面以控制一個直流電機為例,對H橋的幾種開關狀態進行簡單的介紹。
**正轉:**通常H橋用來驅動一個直流電機;打開Q1和Q4;關閉Q2和Q3;此時假設電機正轉,這電流依次經過Q1,M,Q4。
反轉: 關閉Q1和Q4;打開Q2和Q3;此時電機反轉,這時電流依次經過Q2,M,Q3。
調速: 關閉Q2,Q3;打開Q1,Q4上給它輸入50%占空比的PWM波形,這樣就達到了降低轉速的效果,如果需要增加轉速,則將輸入PWM的占空比設置為100%。
停止狀態: 我們以電機從正轉切換到停止狀態為例;正轉情況下;Q1和Q4是打開狀態;這時候如果關閉Q1和Q4,直流電機內部可以等效成電感,也就是感性負載,電流不會突變,那么電流將繼續保持原來的方向進行流動,這時候我們希望電機里的電流可以快速衰減;
這里有兩種辦法:
第一種: 關閉Q1和Q4,這時候電流仍然會通過反向續流二極管進行流動,此時短暫打開Q1和Q3從而達到快速衰減電流的目的;
第二種: 準備停止的時候,關閉Q1
,打開Q2
,這時候電流并不會衰減很快,電流循環在Q2,M,Q4之間流動,通過MOS-FET的內阻將電能消耗掉;
**L298N模塊:**L298N 是一種雙H橋電機驅動芯片,其中每個H橋可以提供2A的電流,可以驅動2個直流電機,可分別實現正轉,反轉功能。
**控制方式表:**邏輯通道IN1,IN2接收信號,控制out1和out2;IN3,IN4控制out3,out4。
利用電位差可以使得直流電機實現正反轉。ENA,ENB為使能端,即PWM口,默認是通過跳線連接到+5V,如果要進行電機速度控制,那么可以連接Arduino的PWM引腳,從中輸入PWM信號,這樣可以起到控速作用,但是電機轉動方向還是得靠IN口控制。
**PWM:**脈沖寬度調制,可以理解為是使用數字信號達到一個模擬信號的效果。
PWM本質: 就是改變脈沖寬度來實現不同的效果,這是一個周期是 10ms,即頻率是 100Hz 的波形,但是每個周期內,高低電平脈沖寬度各不相同。
占空比: 高電平的時間占整個周期的比例。比如第一部分波形的占空比是 40%,第二部分波形占空比是 60%,第三部分波形占空比是 80%,這就是 PWM 的解釋。
**模擬電路控制:**我們以控制LED亮滅來舉例,數字電路中,LED=1時為亮,LED=0時為滅,亮滅間隔運行的時候,LED開始閃爍。
如果我們把這個間隔不斷的減小,減小到我們的肉眼分辨不出來,也就是 100Hz 以上的頻率,這個時候小燈表現出來的現象就是既保持亮的狀態,但亮度又沒有 LED = 1時的亮度高。
我們不斷改變時間參數,讓 LED = 0的時間大于或者小于 LED = 1的時間,會發現亮度都不一樣,這就是模擬電路的感覺了,不再是純粹的 0 和 1,還有亮度不斷變化。
- 如果我們用 100Hz 的信號,假如高電平點亮小燈,低電平熄滅小燈的話,第一部分波形點亮4ms,熄滅6ms,亮度最低,第二部分點亮 6ms,熄滅 4ms,亮度次之,第三部分點亮8ms,熄滅2ms,亮度最高。
電路搭建
所需材料
ArduinoUNO * 1
L298N驅動模塊 * 1
直流電機 * 2
7~12V外接電源 * 1
杜邦線若干
電路連接
這里要注意,如果不外接電源的話,會導致供電不足,電機不會工作的。外接的電源正極接入到UNO 的VIN。
程序編寫:
課堂練習:控制電機正反轉
通過程序編寫,控制電機實現全速轉動。由于圖形化的方式只需要直接拖出模塊調用即可,所以這里不做贅述。主要以代碼的形式進行分析。
代碼方式:
/* 項目名稱:控制直流電機
* 項目時間:2022.03.25
* 項目作者:MRX
*/
int IN1 = 4; // IN1 connected to pin 4
int IN2 = 5;
int ENA = 9;
int IN3 = 6; // IN3 connected to pin 6
int IN4 = 7;
int ENB = 10;
unsigned long delaytime = 1000; //delay time
int value = 255; // the duty cycle
void setup(){
for (int i = 4;i <= 10;i++){
pinMode(i, OUTPUT);
}
//set direction;
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void loop(){
analogWrite(ENA, value);
analogWrite(ENB, value);
delay(delaytime);
}
-
三極管
+關注
關注
143文章
3617瀏覽量
122136 -
直流電機
+關注
關注
36文章
1710瀏覽量
70249 -
電流控制
+關注
關注
4文章
143瀏覽量
23172 -
PWM波
+關注
關注
0文章
99瀏覽量
16906 -
Arduino控制器
+關注
關注
0文章
4瀏覽量
977
發布評論請先 登錄
相關推薦
評論