V tem projektu bomo izdelali Buck Converter Circuit z uporabo Arduino in N-Channel MOSFET z največjo trenutno močjo 6 amperov. Znižali bomo 12v DC na poljubno vrednost med 0 in 10v DC. Vrednost izhodne napetosti lahko nadzorujemo z vrtenjem potenciometra.
Buck pretvornik je pretvornik v enosmerni v enosmerni tok, ki zniža enosmerno napetost. Je kot transformator z eno razliko; medtem ko transformator znižuje izmenični tok, pretvornik znižuje enosmerno napetost Učinkovitost pretvornika je nižja od transformatorja.
Ključni sestavni deli pretvornika dolarjev so MOSFET; bodisi n-kanalni ali p-kanalni in visokofrekvenčni kvadratni impulzni generator (bodisi IC časovnika ali mikrokrmilnik). Arduino se tukaj uporablja kot impulzni generator, v ta namen se lahko uporabi tudi 555 Timer IC. Tu smo pokazali ta pretvornik Buck z nadzorom hitrosti enosmernega motorja s potenciometrom, ki je napetost preizkusil tudi z multimetrom. Oglejte si video na koncu tega članka.
Zahtevane komponente:
- Arduino Uno
- IRF540N
- Induktor (100Uh)
- Kondenzator (100uf)
- Schottky dioda
- Potenciometer
- 10k, 100ohm upor
- Naloži
- 12v baterija
Shema vezja in povezave:
Vzpostavite povezave, kot je prikazano na zgornjem vezju za pretvornik DC-DC Buck.
- En terminal induktorja priključite na vir MOSFET-a, drugega pa na LED v seriji z uporom 1k. Tovor je povezan vzporedno s to razporeditvijo.
- Povežite 10k upor med vrati in izvorom.
- Kondenzator priključite vzporedno z obremenitvijo.
- Pozitivni priključek akumulatorja priključite na izpust, negativni pa na negativni priključek kondenzatorja.
- Povežite p terminal diode z negativom baterije in n terminal neposredno na vir.
- PWM zatič Arduina gre do vrat mosfet-a
- GND zatič Arduino gre do vira MOSFET-a. Ali ga priključite tja, sicer vezje ne bo delovalo.
- Ekstremne sponke potenciometra priključite na 5v pin in GND pin Arduino. Medtem ko je priključek brisalca na analogni zatič A1.
Funkcija Arduina:
Kot smo že pojasnili, Arduino pošlje urne impulze na bazo MOSFET-a. Frekvenca takšnih impulzov je približno 65 Khz. To povzroči zelo hitro preklapljanje mosfet-a in dobimo povprečno vrednost napetosti. V Arduinu se morate naučiti o ADC in PWM, ki vam bodo razjasnili, kako Arduino generira visokofrekvenčne impulze:
- LED zatemnilnik na osnovi Arduina z uporabo PWM
- Kako uporabljati ADC v Arduino Uno?
Funkcija MOSFET-a:
Mosfet se uporablja za dva namena:
- Za visokohitrostno preklapljanje izhodne napetosti.
- Zagotoviti visok tok z manj odvajanja toplote.
Funkcija induktorja:
Induktor se uporablja za nadzor napetostnih konic, ki lahko poškodujejo MOSFET. Induktor shranjuje energijo, ko je mosfet vklopljen, in sprosti to shranjeno energijo, ko je mosfet izklopljen. Ker je frekvenca zelo visoka, je v ta namen potrebna induktivnost zelo nizka (približno 100uH).
Funkcija Schottkyjeve diode:
Schottkyjeva dioda zaključi zanko toka, ko je mosfet izklopljen, in tako zagotavlja nemoteno dovajanje toka v obremenitev. Poleg tega Schottky dioda odvaja zelo nizko toploto in deluje dobro pri višjih frekvencah kot običajne diode.
Funkcija LED:
Svetlost LED kaže na znižanje napetosti na obremenitvi. Ko vrtimo potenciometer, se svetlost LED spreminja.
Funkcija potenciometra:
Ko se terminal potenciometra brisalca zavrne v drugačen položaj, se napetost med njim in tlemi spremeni, kar pa spremeni analogno vrednost, ki jo prejme pin A1 arduina. Ta nova vrednost se nato preslika med 0 in 255 in nato poda na pin 6 Arduina za PWM.
** Kondenzator izravna napetost, ki je dana obremenitvi.
Zakaj upor med vrati in izvorom?
Celo najmanjši šum na vratih MOSFET-a ga lahko vklopi, zato je za preprečitev tega vedno priporočljivo povezati upor visoke vrednosti med vrati in izvorom.
Razlaga kode:
Popolna koda Arduino za generiranje visokofrekvenčnih impulzov je podana v spodnjem odseku kode.
Koda je preprosta in samoumevna, zato smo tukaj razložili le nekaj delov kode.
Spremenljivki x je dodeljena analogna vrednost, ki jo prejme analogni pin A0 Arduina
x = analogRead (A1);
Spremenljivki w je dodeljena preslikana vrednost, ki je med 0 in 255. Tu se vrednosti ADC za Arduino preslikajo na 2 do 255 s pomočjo funkcije zemljevida v Arduinu.
w = zemljevid (x, 0,1023,0,255);
Običajna frekvenca PWM za pin 6 je približno 1 kHz. Ta frekvenca ni primerna za namene, kot je pretvornik dolarjev. Zato je treba to frekvenco povečati na zelo visoko raven. To lahko dosežemo z enovrstno kodo v void setup:
TCCR0B = TCCR0B & B11111000 - B00000001; // spremenimo frekvenco pwm na 65 KHZ pribl.
Delovanje pretvornika DC-DC Buck:
Ko je vezje vklopljeno, se mosfet vklopi in izklopi s frekvenco 65 khz. To povzroči, da induktor shranjuje energijo, ko je mosfet vklopljen, in nato da to shranjeno energijo, da se naloži, ko se mosfet izklopi. Ker se to zgodi pri zelo visoki frekvenci, dobimo povprečno vrednost impulzne izhodne napetosti, odvisno od položaja terminala brisalca potenciometra glede na 5v terminal. In ko se ta napetost med terminalom brisalca in maso poveča, se poveča tudi preslikana vrednost na pwm zatiču št. 6 Arduino.
Recimo, da je ta preslikana vrednost 200. Potem bo napetost PWM na zatiču 6 znašala: = 3,921 voltov
In ker je MOSFET napetostno odvisna naprava, ta napetost pwm na koncu določa napetost na obremenitvi.
Tu smo pokazali ta pretvornik Buck z vrtenjem enosmernega motorja in na multimetru, preverite spodnji video. Hitrost motorja smo nadzorovali s potenciometrom in svetlost LED s potenciometrom.