- Wymagane komponenty:
- Schemat obwodu i połączenia:
- Objaśnienie kodu:
- Działanie konwertera Buck DC-DC:
W tym projekcie zamierzamy wykonać obwód konwertera Buck z wykorzystaniem Arduino i N-Channel MOSFET o maksymalnej wydajności prądowej 6 amperów. Zamierzamy obniżyć napięcie 12 V DC do dowolnej wartości między 0 a 10 V DC. Możemy kontrolować wartość napięcia wyjściowego obracając potencjometr.
Konwerter buck to konwerter DC na DC, który obniża napięcie DC. To jest jak transformator z jedną różnicą; podczas gdy transformator obniża napięcie AC, przetwornica obniża napięcie DC. Sprawność konwertera buck jest niższa niż transformatora.
Kluczowe elementy konwertera buck to mosfet; Generator impulsów prostokątnych z kanałem n lub p oraz wysokiej częstotliwości (układ scalony z zegarem lub mikrokontroler). Arduino jest tutaj używane jako generator impulsów, do tego celu można również użyć układu scalonego timera 555. Tutaj zademonstrowaliśmy ten konwerter Buck, kontrolując prędkość silnika prądu stałego za pomocą potencjometru, a także przetestowaliśmy napięcie za pomocą multimetru. Sprawdź wideo na końcu tego artykułu.
Wymagane komponenty:
- Arduino Uno
- IRF540N
- Cewka (100Uh)
- Kondensator (100 uf)
- Dioda Schottky'ego
- Potencjometr
- Rezystor 10k, 100ohm
- Załaduj
- Bateria 12v
Schemat obwodu i połączenia:
Wykonaj połączenia jak pokazano na powyższym schemacie obwodu dla przetwornika DC-DC Buck.
- Podłącz jeden zacisk cewki indukcyjnej do źródła mosfetu, a drugi do diody LED szeregowo z rezystorem 1k. Obciążenie jest podłączone równolegle do tego układu.
- Podłącz rezystor 10k między bramką a źródłem.
- Podłącz kondensator równolegle do obciążenia.
- Podłącz dodatni biegun akumulatora do drenu i ujemny do ujemnego zacisku kondensatora.
- Podłącz końcówkę p diody do ujemnego bieguna akumulatora i końcówkę n bezpośrednio do źródła.
- Pin PWM Arduino idzie do bramki mosfetu
- Pin GND Arduino idzie do źródła MOSFET. Podłącz go tam lub obwód nie będzie działał.
- Podłącz skrajne zaciski potencjometru odpowiednio do pinów 5 V i pinów GND Arduino. Natomiast zacisk wycieraczki do analogowego pinu A1.
Funkcja Arduino:
Jak już wyjaśniono, Arduino wysyła impulsy zegarowe do bazy MOSFET. Częstotliwość tych impulsów zegarowych wynosi ok. 65 Khz. Powoduje to bardzo szybkie przełączanie mosfetu i otrzymujemy średnią wartość napięcia. Powinieneś dowiedzieć się o ADC i PWM w Arduino, co wyjaśni ci, jak impulsy o wysokiej częstotliwości są generowane przez Arduino:
- Ściemniacz LED oparty na Arduino wykorzystujący PWM
- Jak korzystać z ADC w Arduino Uno?
Funkcja MOSFET:
Mosfet jest używany do dwóch celów:
- Do szybkiego przełączania napięcia wyjściowego.
- Zapewnia wysoki prąd przy mniejszym rozpraszaniu ciepła.
Funkcja cewki:
Cewka służy do kontrolowania skoków napięcia, które mogą uszkodzić mosfet. Cewka przechowuje energię, gdy mosfet jest włączony i uwalnia tę zmagazynowaną energię, gdy mosfet jest wyłączony. Ponieważ częstotliwość jest bardzo duża, wymagana do tego celu indukcyjność jest bardzo niska (około 100uH).
Funkcja diody Schottky'ego: Dioda
Schottky'ego zamyka pętlę prądu, gdy mosfet jest wyłączony, zapewniając w ten sposób płynne dostarczanie prądu do obciążenia. Poza tym dioda Schottky'ego rozprasza bardzo mało ciepła i działa dobrze przy wyższej częstotliwości niż zwykłe diody.
Funkcja diody LED:
Jasność diody LED wskazuje obniżanie napięcia na obciążeniu. Gdy obracamy Potencjometrem, zmienia się jasność diody LED.
Funkcja potencjometru:
Gdy zacisk wycieraczki potencjometru jest wyrzucony w inne położenie, napięcie między nim a masą zmienia się, co z kolei zmienia wartość analogową odbieraną przez pin A1 arduino. Ta nowa wartość jest następnie mapowana między 0 a 255, a następnie podawana na pin 6 Arduino dla PWM.
** Kondensator wygładza napięcie podawane do obciążenia.
Dlaczego rezystor między bramką a źródłem?
Nawet najmniejszy szum na bramce MOSFET może go włączyć, dlatego aby temu zapobiec, zawsze zaleca się podłączenie rezystora o dużej wartości między bramką a źródłem.
Objaśnienie kodu:
Pełny kod Arduino do generowania impulsów wysokiej częstotliwości jest podany w sekcji kodu poniżej.
Kod jest prosty i nie wymaga objaśnień, dlatego tutaj wyjaśniliśmy tylko kilka jego części.
Zmienna x ma przypisaną wartość analogową, która jest odbierana z analogowego pinu A0 Arduino
x = analogRead (A1);
Zmiennej w przypisywana jest mapowana wartość z przedziału od 0 do 255. Tutaj wartości ADC Arduino są mapowane na 2 do 255 za pomocą funkcji mapowania w Arduino.
w = mapa (x, 0,1023,0,255);
Normalna częstotliwość PWM dla pinu 6 wynosi około 1 kHz. Ta częstotliwość nie jest odpowiednia do celów takich jak konwerter buck. Stąd częstotliwość ta musi zostać zwiększona do bardzo wysokiego poziomu. Można to osiągnąć za pomocą jednowierszowego kodu w konfiguracji void:
TCCR0B = TCCR0B & B11111000 - B00000001; // zmień częstotliwość pwm na 65 KHZ ok.
Działanie konwertera Buck DC-DC:
Kiedy obwód jest włączony, mosfet włącza się i wyłącza z częstotliwością 65 kHz. Powoduje to, że induktor magazynuje energię, gdy mosfet jest włączony, a następnie przekazuje tę zmagazynowaną energię do załadowania, gdy mosfet się wyłączy. Ponieważ dzieje się to przy bardzo wysokiej częstotliwości, otrzymujemy średnią wartość pulsującego napięcia wyjściowego w zależności od położenia zacisku wycieraczki potencjometru względem zacisku 5V. Wraz ze wzrostem tego napięcia między zaciskiem wycieraczki a masą rośnie wartość odwzorowana na pinie pwm nr. 6 Arduino.
Powiedzmy, że ta odwzorowana wartość to 200. Wtedy napięcie PWM na pinie 6 będzie wynosić: = 3,921 wolta
A ponieważ MOSFET jest urządzeniem zależnym od napięcia, to napięcie pwm ostatecznie określa napięcie na obciążeniu.
Tutaj zademonstrowaliśmy ten konwerter Buck, obracając silnik prądu stałego i na multimetrze, sprawdź wideo poniżej. Kontrolowaliśmy prędkość silnika za pomocą Potencjometru, a jasność diody LED za pomocą Potencjometru.