- Nødvendige komponenter:
- Kredsløbsdiagram og forbindelser:
- Kode Forklaring:
- Arbejde med DC-DC Buck Converter:
I dette projekt skal vi lave et Buck Converter Circuit ved hjælp af Arduino og N-Channel MOSFET med en maksimal strømkapacitet på 6 ampere. Vi går ned 12V DC til en hvilken som helst værdi mellem 0 og 10V DC. Vi kan styre udgangsspændingsværdien ved at dreje potentiometeret.
En buck-konverter er en DC til DC-konverter, der nedjusterer DC-spændingen. Det er ligesom en transformer med en forskel; mens transformer nedstrøms vekselstrømsspændingskonverter konverterer jævnstrømsspænding. Effektiviteten af buck-konverter er lavere end en transformer.
Nøglekomponenterne i buck converter er mosfet; enten n-kanal eller p-kanal og højfrekvent Square Pulse Generator (enten en timer IC eller mikrokontroller). Arduino bruges her som Pulse Generator, en 555 Timer IC kan også bruges til dette formål. Her har vi demonstreret denne Buck-konverter ved at kontrollere DC-motorhastighed med potentiometer, også testet spændingen ved hjælp af multimeter. Tjek videoen i slutningen af denne artikel.
Nødvendige komponenter:
- Arduino Uno
- IRF540N
- Spole (100Uh)
- Kondensator (100uf)
- Schottky-diode
- Potentiometer
- 10k, 100ohm modstand
- belastning
- 12v batteri
Kredsløbsdiagram og forbindelser:
Foretag forbindelser som vist i kredsløbsdiagrammet ovenfor for DC-DC Buck Converter.
- Tilslut en terminal af induktoren til mosfetkilden og en anden til LED i serie med 1k modstand. Belastning er forbundet parallelt med dette arrangement.
- Forbind 10k modstand mellem gate og kilde.
- Forbind kondensatoren parallelt med belastningen.
- Tilslut den positive pol på batteriet for at dræne og negativ til kondensatorens negative terminal.
- Tilslut p-terminal af diode til minus på batteri og n-terminal direkte til kilden.
- PWM-stift af Arduino går til Mosfet-porten
- GND pin af Arduino går til kilde til mosfet. Tilslut det der, ellers vil kredsløbet ikke fungere.
- Tilslut potentiometerets ekstreme terminaler til henholdsvis 5v pin og GND pin af Arduino. Mens viskerterminal til analog pin A1.
Funktion af Arduino:
Som allerede forklaret sender Arduino urimpulser til basen af MOSFET. Frekvens af disse urimpulser er ca. 65 Khz. Dette medfører meget hurtig skift af mosfet, og vi opnår en gennemsnitlig spændingsværdi. Du bør lære om ADC og PWM i Arduino, hvilket vil tydeliggøre dig, hvordan højfrekvente impulser genereres af Arduino:
- Arduino-baseret LED-dæmper ved hjælp af PWM
- Hvordan bruges ADC i Arduino Uno?
Funktion af MOSFET:
Mosfet bruges til to formål:
- Til høj hastighedskobling af udgangsspændingen.
- At give høj strøm med mindre varmeafledning.
Spoleens funktion:
Spole bruges til at kontrollere spændingsspidser, der kan beskadige mosfet. Induktor lagrer energi, når mosfet er tændt, og frigiver denne lagrede energi, når mosfet er slukket. Da frekvensen er meget høj, er induktansværdien, der kræves til dette formål, meget lav (ca. 100uH).
Schottky-diodes funktion:
Schottky-dioden fuldender strømkredsen, når mosfet er slukket, og sikrer således jævn strømforsyning til belastningen. Bortset fra dette spreder schottky-diode meget lav varme og fungerer fint ved højere frekvens end almindelige dioder.
Funktion af LED:
Lysstyrke af LED indikerer nedstrømsspænding over belastning. Når vi roterer potentiometeret, varierer lysstyrken på LED.
Potentiometerets funktion:
Når viskerterminalen på potentiometeret smides til en anden position, ændres spændingen mellem det og jorden, hvilket igen ændrer den analoge værdi, der modtages af pin A1 i arduino. Denne nye værdi kortlægges derefter mellem 0 og 255 og gives derefter til pin 6 i Arduino til PWM.
** Kondensator udjævner spænding til belastning.
Hvorfor modstand mellem port og kilde?
Selv den mindste støj ved porten til MOSFET kan tænde den, og derfor anbefales det at forbinde modstand med høj værdi mellem gate og kilde for at forhindre dette i at ske.
Kode Forklaring:
Komplet Arduino-kode til generering af højfrekvente impulser er angivet i kodesektionen nedenfor.
Koden er enkel og selvforklarende, så her har vi kun forklaret få dele af koden.
Variabel x tildeles den analoge værdi, der modtages fra den analoge pin A0 i Arduino
x = analogRead (A1);
Variabel w tildeles den kortlagte værdi, der er mellem 0 og 255. Her kortlægges ADC-værdierne for Arduino til 2 til 255 ved hjælp af kortfunktion i Arduino.
w = kort (x, 0,1023,0,255);
Normal frekvens af PWM for pin 6 er ca. 1 kHz. Denne frekvens er ikke egnet til formål som buck converter. Derfor skal denne frekvens øges til et meget højt niveau. Dette kan opnås ved hjælp af en linjekode i ugyldig opsætning:
TCCR0B = TCCR0B & B11111000 - B00000001; // skift frekvens af pwm til 65 KHz ca.
Arbejde med DC-DC Buck Converter:
Når kredsløbet er tændt, tænder og slukker mosfet med en frekvens på 65 khz. Dette får induktoren til at lagre energi, når mosfet er tændt, og derefter give denne lagrede energi til at indlæse, når mosfet slukker. Da dette sker med meget høj frekvens, får vi en gennemsnitlig værdi af pulserende udgangsspænding afhængigt af placeringen af viskerterminalen på potentiometeret i forhold til 5v-terminalen. Og da denne spænding mellem viskerterminal og jord stiger, øges også den kortlagte værdi på pwm pin nr. 6 af Arduino.
Lad os sige, at denne kortlagte værdi er 200. Så vil PWM-spændingen på pin 6 være på: = 3,921 volt
Og da MOSFET er en spændingsafhængig enhed, bestemmer denne pwm-spænding i sidste ende spændingen over belastningen.
Her har vi demonstreret denne Buck-konverter ved at dreje en DC-motor og på multimeteret, se videoen nedenfor. Vi har styret motorens hastighed med potentiometer og styret lysstyrken på LED med potentiometer.