Šiame projekte mes ketiname atsisakyti 12 V DC iki bet kokios DC vertės nuo 2 iki 11 voltų. Grandinė, kuri mažina nuolatinės srovės įtampą, yra žinoma kaip „buck konverteris“. Reikalinga išėjimo įtampa arba žemesnė įtampa valdoma naudojant potenciometrą, prijungtą prie „arduino“.
Autorius Ankit Negi
ĮVADAS KEITIKLIAMS:
Iš esmės yra dviejų tipų keitikliai:
1. Buck konverteris
2. Padidinkite keitiklį
Abu keitikliai keičia įėjimo įtampą pagal reikalavimą. Jie panašūs į a transformatorius su vienu pagrindiniu skirtumu. Kai transformatorius padidina / sumažina AC įtampą, DC keitikliai padidina / sumažina DC įtampą. Pagrindiniai abiejų keitiklių komponentai yra šie:
A. MOSFETAS
B. INDUKTORIUS
C. KONDENSATORIUS
BUCK CONVERTER: kaip rodo pats pavadinimas, buck reiškia sumažinti įėjimo įtampą. Buck konverteris suteikia mums mažesnę įtampą nei įėjimo DC įtampa esant dideliam srovės pajėgumui. Tai tiesioginis atsivertimas.
„BOOST CONVERTER“: kaip rodo pats pavadinimas, „boost“ reiškia padidinti įėjimo įtampą.
„Boost“ keitiklis suteikia mums nuolatinės srovės įtampą daugiau nei įtampą įėjimo metu. Tai taip pat yra tiesioginis atsivertimas.
** Šiame projekte mes padarysime „buck“ keitiklio grandinę, kad sumažintume 12 v DC, naudodami „Arduino“ kaip PWM šaltinį.
PWM DAŽNIO KEITIMAS ARDUINO PINAS:
„Arduino UNO“ PWM kaiščiai yra 3, 5, 6, 9, 10 ir 11.
Norėdami atlikti PWM, naudojama komanda yra:
analogWrite (PWM PIN NO, PWM VALUE)
ir šių kaiščių PWM dažnis yra:
„Arduino“ kaiščiams 9, 10, 11 ir 3 ---- 500Hz
5 ir 6 „Arduino“ kaiščiams - 1 kHz
Šie dažniai yra tinkami naudoti bendrai paskirčiai, pavyzdžiui, išblukinti ledą. Bet kaip grandinė „buck“ arba „boost“ keitiklis , reikia aukšto dažnio PWM šaltinio (dešimčių KHZ diapazone), nes MOSFET reikia aukšto dažnio, kad būtų užtikrintas tobulas perjungimas, o aukšto dažnio įvestis sumažina grandinės komponentų, tokių kaip induktorius ir kondensatorius, vertę ar dydį. Taigi šiam projektui reikalingas aukšto dažnio PWM šaltinis.
Gerai tai, kad mes galime pakeisti „arduino“ PWM kaiščių PWM dažnį naudodami paprastą kodą:
„ARDUINO UNO“:
Galimas PWM dažnis D3 ir D11:
// TCCR2B = TCCR2B & B11111000 | B00000001 // PWM dažniui 31372,55 Hz
// TCCR2B = TCCR2B & B11111000 | B00000010 // kai PWM dažnis yra 3921,16 Hz
// TCCR2B = TCCR2B & B11111000 | B00000011 // kai PWM dažnis yra 980,39 Hz
TCCR2B = TCCR2B ir B11111000 | B00000100 // kai PWM dažnis yra 490,20 Hz (Numatytasis)
// TCCR2B = TCCR2B & B11111000 | B00000101 // esant PWM dažniui 245,10 Hz
// TCCR2B = TCCR2B & B11111000 | B00000110 // kai PWM dažnis yra 122,55 Hz
// TCCR2B = TCCR2B & B11111000 | B00000111 // PWM dažniui 30,64 Hz
Galimas D5 ir D6 PWM dažnis:
// TCCR0B = TCCR0B & B11111000 | B00000001 // PWM dažniui 62500,00 Hz
// TCCR0B = TCCR0B & B11111000 | B00000010 // PWM dažniui 7812,50 Hz
TCCR0B = TCCR0B & B11111000 | B00000011 // kai PWM dažnis yra 976,56 Hz (Numatytasis)
// TCCR0B = TCCR0B & B11111000 | B00000100 // kai PWM dažnis yra 244,14 Hz
// TCCR0B = TCCR0B & B11111000 | B00000101 // PWM dažniui 61,04 Hz
Galimas D9 ir D10 PWM dažnis:
// TCCR1B = TCCR1B & B11111000 | B00000001 // nustatykite laikmačio 1 daliklį į 1, kai PWM dažnis yra 31372,55 Hz
// TCCR1B = TCCR1B & B11111000 | B00000010 // kai PWM dažnis yra 3921,16 Hz
TCCR1B = TCCR1B ir B11111000 | B00000011 // PWM dažniui 490,20 Hz (Numatytasis)
// TCCR1B = TCCR1B & B11111000 | B00000100 // PWM dažniui 122,55 Hz
// TCCR1B = TCCR1B & B11111000 | B00000101 // PWM dažniui 30,64 Hz
** mes naudosime kaištį Nr. 6 PWM, taigi ir kodas:
// TCCR0B = TCCR0B & B11111000 | B00000001 // PWM dažniui 62,5 KHz
KOMPONENTŲ SĄRAŠAS:
1. ARDUINO UNO
2. INDUKTORIUS (100Uh)
3. SCHOTTKY DIODA
4. KONDENSATORIUS (100 p.)
5. IRF540N
6. POTENCIOMETRAS
7. 10k, 100ohm RESISTOR
8. LOAD (šiuo atveju variklis)
9.12 V AKUMULIATORIUS
PIRKIMO DIAGRAMA
Prijunkite jungtis, kaip parodyta schemoje.
1. Prijunkite potenciometro galinius gnybtus prie atitinkamai „Arduino UNO“ 5v kaiščio ir įžeminto kaiščio, o jo valytuvo terminalą - prie analoginio kaiščio A1.
2. Prijunkite „arduino“ PWM 6 kaištį prie „mosfet“ pagrindo.
3. Teigiamas akumuliatoriaus gnybtas, kad nutekėtų mosfetas, ir neigiamas - schottky diodo p-gnybtas.
4. Nuo schottky diodo p terminalo nuosekliai prijunkite apkrovą (variklį) su induktoriumi prie „mosfet“ šaltinio gnybto.
5. Dabar prijunkite „schottky“ diodo n terminalą prie „mosfet“ šaltinio terminalo.
6. Prie variklio prijunkite 47uf kondensatorių.
7. Pagaliau prijunkite „arduino“ antžeminį kaištį prie „mosfet“ šaltinio terminalo.
MOSFET tikslas:
„Mosfet“ naudojamas įėjimo įtampai perjungti aukštu dažniu ir užtikrinti didelę srovę, mažiau išsklaidant šilumą.
Arduino tikslas:
Dideliam „mosfet“ perjungimo greičiui (maždaug 65 KHz dažniu)
Induktoriaus paskirtis:
Jei ši grandinė veikia neprijungus induktoriaus, yra didelė tikimybė pakenkti „mosfet“ dėl aukštos įtampos šuolių ant „mosfet“ terminalo.
Norėdami išvengti „mosfet“ nuo šių aukštos įtampos šuolių, jis yra prijungtas taip, kaip parodyta paveikslėlyje, nes kai „mosfet“ yra ant jo, jis kaupia energiją, o kai „mosfet“ yra išjungtas, atiduokite varikliui šią sukauptą energiją.
Schottky diodo paskirtis:
Tarkime, kad schottky diodas nėra prijungtas prie grandinės. Tokiu atveju, kai „mosfet“ yra išjungtas, induktorius išleidžia savo energiją apkrovai arba varikliui, o tai turi labai nedidelį poveikį apkrovai, nes nėra neišsami kilpa, kad srovė tekėtų. Taigi schottky diodas užbaigia srovės tekėjimo kontūrą. Dabar čia nėra prijungtas įprastas diodas, nes „schottky“ diodas turi mažą įtampos kritimą į priekį. Švino paskirtis:nurodyti žemesnę įtampą per apkrovą.
Potenciometro paskirtis:
Potenciometras suteikia analogišką vertę „arduino“ (atsižvelgiant į valytuvo terminalo padėtį), pagal kurią pwm įtampą gauna „mosfet“ vartų terminalas iš „Arduino“ PWM kaiščio 6. Ši vertė galiausiai kontroliuoja išėjimo įtampą esant apkrovai.
Kodėl rezistorius yra sujungtas tarp vartų ir šaltinio?
Net nedidelis triukšmas gali įjungti „mosfet“. Taigi a nuleiskite rezistorių yra sujungtas tarp vartų ir žemės, ty šaltinio.
Programos kodas
Burn this code to arduino:
int m // initialize variable m
int n // initialize variable n
void setup()
B00000001 // for PWM frequency of 62.5 KHz on pin 6( explained under code section)
Serial.begin(9600) // begin serial communication
void loop()
{
m= analogRead(A1) // read voltage value from pin A1 at which pot. wiper terminal is connected
n= map(m,0,1023,0,255) // map this ip value betwenn 0 and 255
analogWrite(6,n) // write mapped value on pin 6
Serial.print(' PWM Value ')
Serial.println(n)
}
KODO PAAIŠKINIMAS
1. Kintamasis x yra įtampos vertė, gaunama iš kaiščio A1, prie kurio prijungtas puodo valytuvo gnybtas.
2. Kintamajam y priskiriama susietoji vertė, kuri yra nuo 0 iki 255.
3. ** kaip jau paaiškinta ankstesniame grandinės, pvz., „Buck“ ar „boost“ keitiklio, skyriuje, reikia aukšto dažnio PWM šaltinio (dešimčių KHZ diapazone), nes MOSFET reikia aukšto dažnio, kad būtų galima perjungti tobulai, o aukšto dažnio įvestis sumažina vertę ar dydį grandinės komponentų, tokių kaip induktorius ir kondensatorius.
Taigi mes naudosime šį paprastą kodą, kad generuotume maždaug pwm įtampą. 65 kHz dažnis: TCCR0B = TCCR0B & B11111000 | B00000001 // PWM dažniui 62,5 KHz 6 kaištyje
Kaip tai veikia:
Kadangi potenciometras suteikia analogišką „arduino“ vertę (atsižvelgiant į valytuvo terminalo padėtį), tai nustato pwm įtampos vertę, kurią gauna „mosfet“ vartų terminalas iš „Arduino“ 6 PWM kaiščio.
Ši vertė galiausiai kontroliuoja išėjimo įtampą esant apkrovai.
Kai „mosfet“ yra įjungtas į induktyvumo indėlį, jis išjungia šią sukauptą energiją į apkrovą, ty šiuo atveju variklį. Kadangi šis procesas vyksta labai aukštu dažniu, gauname mažesnę nuolatinės srovės įtampą per variklį, kuri priklauso nuo valytuvo terminalo padėties, nes „mosfet“ yra nuo įtampos priklausantis įrenginys.Vaizdų prototipas:
![](http://jf-parede.pt/img/arduino-engineering-projects/12/make-this-buck-converter-using-arduino-3.png)
![](http://jf-parede.pt/img/arduino-engineering-projects/12/make-this-buck-converter-using-arduino-4.png)
![](http://jf-parede.pt/img/arduino-engineering-projects/12/make-this-buck-converter-using-arduino-5.png)
![](http://jf-parede.pt/img/arduino-engineering-projects/12/make-this-buck-converter-using-arduino-6.png)
Pora: Paprasta skaitmeninė vandens srauto matuoklio grandinė naudojant „Arduino“ Kitas: 4 paprastos artumo jutiklio grandinės - naudojant IC LM358, IC LM567, IC 555