在這個項目中,我們將使用Arduino和N溝道MOSFET制作一個降壓轉(zhuǎn)換器電路,最大電流容量為6安培。我們將把 12v DC 降壓到 0 到 10v DC 之間的任何值。我們可以通過旋轉(zhuǎn)電位器來控制輸出電壓值。
降壓轉(zhuǎn)換器是一種直流到直流轉(zhuǎn)換器,可降低直流電壓。它就像一個變壓器,只有一個區(qū)別;變壓器降壓交流電壓降壓轉(zhuǎn)換器降壓直流電壓。降壓轉(zhuǎn)換器的效率低于變壓器。
降壓轉(zhuǎn)換器的關鍵元件是MOSFET;n溝道或p溝道和高頻方波脈沖發(fā)生器(定時器IC或微控制器)。Arduino在這里用作脈沖發(fā)生器,555定時器IC也可以用于此目的。在這里,我們演示了這款降壓轉(zhuǎn)換器,通過使用電位計控制直流電機速度,還使用萬用表測試了電壓。
所需組件:
Arduino Uno
紅外熱鍍膜儀540N
電感器(100Uh)
電容器 (100uf)
電位計
10k、100 歐姆電阻器
負荷
12v 電池
電路圖和連接:
如上圖所示進行DC-DC降壓轉(zhuǎn)換器的連接。
將電感器的一個端子連接到 MOSFET 的源極,另一個端子連接到與 1k 電阻串聯(lián)的 LED。負載與這種布置并聯(lián)連接。
在柵極和源極之間連接 10k 電阻。
將電容器并聯(lián)到負載。
將電池的正極連接到漏極,將負極連接到電容器的負極。
將二極管的p端連接到電池的負極,將n端直接連接到電源。
Arduino的PWM引腳進入MOSFET的柵極
Arduino的GND引腳連接到MOSFET的源頭。請將其連接到那里,否則電路將無法正常工作。
將電位計的極端端子分別連接到 Arduino 的 5v 引腳和 GND 引腳。而游標端子為模擬引腳A1。
Arduino的功能:
如前所述,Arduino將時鐘脈沖發(fā)送到MOSFET的基座。這些時鐘脈沖的頻率約為65 Khz。這導致MOSFET的開關非??欤覀兊玫揭粋€平均電壓值。
場效應管的功能:
MOSFET有兩個用途:
用于輸出電壓的高速切換。
提供高電流,散熱少。
電感器功能:
電感器用于控制可能損壞MOSFET的電壓尖峰。電感器在 MOSFET 導通時存儲能量,并在 MOSFET 關閉時釋放這些存儲的能量。由于頻率非常高,因此所需的電感值非常低(約100uH)。
肖特基二極管的功能:
當MOSFET關閉時,肖特基二極管完成電流環(huán)路,從而確保向負載平穩(wěn)供應電流。除此之外,肖特基二極管的散熱非常低,并且在比普通二極管更高的頻率下工作良好。
LED功能:
LED亮度表示負載兩端的降壓電壓。當我們旋轉(zhuǎn)電位計時,LED的亮度會發(fā)生變化。
電位器功能:
當電位計的游標端子被甩到不同的位置時,它和地之間的電壓會發(fā)生變化,進而改變 arduino 引腳 A1 接收的模擬值。然后將此新值映射到 0 和 255 之間,然后提供給 Arduino 的引腳 6 用于 PWM。
** 電容器平滑了給定負載的電壓。
為什么柵極和源極之間有電阻?
即使是MOSFET柵極處最輕微的噪聲也會將其導通,因此為了防止這種情況發(fā)生,始終建議在柵極和源極之間連接高值電阻器。
代碼說明:
完整的Arduino代碼,用于生成高頻脈沖,在下面的代碼部分中給出。
代碼簡單且不言自明,因此在這里我們只解釋了代碼的幾個部分。
變量 x 被分配從 Arduino 的模擬引腳 A0 接收的模擬值
變量 w 被分配在 0 到 255 之間的映射值。在這里,Arduino的ADC值使用Arduino中的map函數(shù)映射到2到255。
w= map(x,0,1023,0,255) ;
引腳 6 的 PWM 正常頻率約為 1kHz。該頻率不適用于降壓轉(zhuǎn)換器等用途。因此,必須將這種頻率提高到非常高的水平。這可以在無效設置中使用一行代碼來實現(xiàn):
TCCR0B = TCCR0B & B11111000 | B00000001;// change frequency of pwm to 65 KHZ approx.
DC-DC降壓轉(zhuǎn)換器的工作原理:
當電路導通時,MOSFET 以 65 kHz 的頻率打開和關閉。這會導致電感器在 mosfet 導通時存儲能量,然后在 mosfet 關斷時將存儲的能量提供給負載。由于這種情況發(fā)生在非常高的頻率下,因此根據(jù)電位計的游標端子相對于5v端子的位置,我們得到脈沖輸出電壓的平均值。隨著游標端子和接地之間的電壓增加,Arduino的pwm引腳6上的映射值也會增加。
Let’s say this mapped value is 200. Then PWM voltage on pin 6 will be at: [ (200*5) / 255 ]= 3.921 volts
由于MOSFET是一個電壓相關的器件,因此該PWM電壓最終決定了負載兩端的電壓。
int x; // initialize variables
int w;
void setup() {
pinMode(6,OUTPUT);// pwm pin 6 as output pin
pinMode(A1,INPUT);// analog pin as input
TCCR0B = TCCR0B & B11111000 | B00000001;// change frequency of pwm to 65 KHZ approx( explained under code section)
Serial.begin(9600);// begin serial communication
}
void loop() {
x= analogRead(A1);
w= map(x,0,1023,0,255);
analogWrite(6,w); // write mapped value on pin 6
Serial.print("w "); //print mapped value on screen
Serial.println(w);
}
-
MOSFET
+關注
關注
147文章
7234瀏覽量
214169 -
降壓轉(zhuǎn)換器
+關注
關注
7文章
1549瀏覽量
86484 -
Arduino
+關注
關注
188文章
6477瀏覽量
187752
發(fā)布評論請先 登錄
相關推薦
評論