V tomto projektu budeme vyrábět Buck Converter Circuit pomocí Arduino a N-Channel MOSFET s maximální proudovou kapacitou 6 ampérů. Chystáme se snížit napětí 12V na libovolnou hodnotu mezi 0 a 10V DC. Hodnotu výstupního napětí můžeme ovládat otáčením potenciometru.
Převodník buck je převodník DC na DC, který snižuje stejnosměrné napětí. Je to jako transformátor s jedním rozdílem; zatímco transformátor snižuje převaděč střídavého napětí a snižuje stejnosměrné napětí. Účinnost převaděče buck je nižší než transformátor.
Klíčovými součástmi převaděče buck jsou mosfet; buď n-kanál nebo p-kanál a vysokofrekvenční generátor čtvercových pulsů (buď časovač IC nebo mikrokontrolér). Arduino se zde používá jako generátor impulzů, pro tento účel lze také použít časovač IC 555. Zde jsme demonstrovali tento převodník Buck ovládáním otáček stejnosměrného motoru pomocí potenciometru, také testoval napětí pomocí multimetru. Podívejte se na video na konci tohoto článku.
Požadované komponenty:
- Arduino Uno
- IRF540N
- Induktor (100 Uh)
- Kondenzátor (100uf)
- Schottkyho dioda
- Potenciometr
- 10k, 100ohm rezistor
- Zatížení
- 12v baterie
Schéma zapojení a zapojení:
Proveďte připojení, jak je znázorněno ve schématu zapojení výše pro DC-DC Buck Converter.
- Připojte jednu svorku induktoru ke zdroji MOSFET a druhou k LED v sérii s odporem 1k. Zátěž je k tomuto uspořádání připojena paralelně.
- Připojte 10k rezistor mezi bránu a zdroj.
- Připojte kondenzátor paralelně k zátěži.
- Připojte kladný pól baterie k vybití a záporný pól ke zápornému pólu kondenzátoru.
- Připojte svorku p diody k zápornému pólu baterie a svorku n přímo ke zdroji.
- PWM pin Arduina jde do brány mosfetu
- GND pin Arduina jde ke zdroji MOSFET. Připojte jej tam, jinak obvod nebude fungovat.
- Připojte krajní svorky potenciometru k 5V pinu a GND pinu Arduina. Zatímco svorka stěrače na analogový kolík A1.
Funkce Arduina:
Jak již bylo vysvětleno, Arduino odesílá hodinové impulsy na základnu MOSFET. Frekvence těchto hodinových impulzů je cca. 65 Khz. To způsobí velmi rychlé přepínání mosfetu a získáme průměrnou hodnotu napětí. Měli byste se dozvědět o ADC a PWM v Arduinu, které vám vyčistí, jak vysokofrekvenční impulsy generuje Arduino:
- Arduino LED stmívač pomocí PWM
- Jak používat ADC v Arduino Uno?
Funkce MOSFET:
Mosfet se používá ke dvěma účelům:
- Pro vysokorychlostní přepínání výstupního napětí.
- Zajistit vysoký proud s menším odvodem tepla.
Funkce induktoru:
Induktor se používá k řízení napěťových špiček, které mohou poškodit mosfet. Induktor ukládá energii, když je mosfet zapnutý, a uvolňuje tuto uskladněnou energii, když je mosfet vypnutý. Protože frekvence je velmi vysoká, hodnota indukčnosti potřebná pro tento účel je velmi nízká (kolem 100uH).
Funkce Schottkyho diody:
Schottkyho dioda doplňuje proudovou smyčku, když je mosfet vypnutý, a zajišťuje tak plynulý přísun proudu do zátěže. Kromě toho schottkyho dioda rozptyluje velmi nízké teplo a funguje dobře s vyšší frekvencí než běžné diody.
Funkce LED:
Jas LED indikuje sestupné napětí napříč zátěží. Jak otáčíme potenciometrem, jas LED se mění.
Funkce potenciometru:
Když je svorka stěrače potenciometru vyhozena do jiné polohy, změní se napětí mezi ní a zemí, což zase změní analogovou hodnotu přijímanou pinem A1 arduina. Tato nová hodnota je poté mapována mezi 0 a 255 a poté přidělena na pin 6 Arduina pro PWM.
** Kondenzátor vyhlazuje napětí dané zátěži.
Proč odpor mezi bránou a zdrojem?
I ten nejmenší šum na bráně MOSFETu jej může zapnout, proto, aby se tomu zabránilo, vždy se doporučuje připojit mezi bránou a zdrojem vysoce hodnotný rezistor.
Vysvětlení kódu:
Kompletní Arduino kód pro generování vysokofrekvenčních pulzů je uveden v sekci kódu níže.
Kód je jednoduchý a vysvětlující, takže zde jsme vysvětlili jen několik částí kódu.
Proměnné x je přiřazena analogová hodnota, která je přijímána z analogového pinu A0 Arduina
x = analogRead (A1);
Proměnné w je přiřazena namapovaná hodnota, která je mezi 0 a 255. Zde jsou hodnoty ADC Arduina mapovány na 2 až 255 pomocí mapové funkce v Arduinu.
w = mapa (x, 0,1023,0,255);
Normální frekvence PWM pro pin 6 je přibližně 1 kHz. Tato frekvence není vhodná pro účely, jako je převodník bucků. Proto musí být tato frekvence zvýšena na velmi vysokou úroveň. Toho lze dosáhnout pomocí jednorázového kódu v nastavení neplatnosti:
TCCR0B = TCCR0B & B11111000 - B00000001; // změna frekvence pwm na 65 KHZ cca.
Práce převaděče DC-DC Buck:
Když je obvod zapnutý, mosfet se zapíná a vypíná s frekvencí 65 khz. To způsobí, že induktor ukládá energii, když je mosfet zapnutý, a poté dodává tuto akumulovanou energii do zatížení, když se mosfet vypne. Jelikož k tomu dochází při velmi vysoké frekvenci, dostaneme průměrnou hodnotu pulzního výstupního napětí v závislosti na poloze svorky stěrače potenciometru vzhledem k svorce 5v. A jak se toto napětí mezi svorkou stěrače a zemí zvyšuje, zvyšuje se i mapovaná hodnota na pwm pinu č. 6 Arduina.
Řekněme, že tato namapovaná hodnota je 200. Pak bude napětí PWM na pinu 6 na: = 3,921 voltů
A protože MOSFET je zařízení závislé na napětí, toto napětí pwm nakonec určuje napětí napříč zátěží.
Zde jsme předvedli tento převodník Buck otáčením stejnosměrného motoru a na multimetru zkontrolujte video níže. Potenciometrem jsme ovládali rychlost motoru a potenciometrem jsme kontrolovali jas LED.