- Nödvändiga komponenter:
- Kretsschema och anslutningar:
- Kodförklaring:
- Arbeta med DC-DC Buck Converter:
I det här projektet ska vi skapa en Buck Converter Circuit med Arduino och N-Channel MOSFET med en maximal strömkapacitet på 6 ampere. Vi kommer att trappa ner 12v DC till valfritt värde mellan 0 och 10v DC. Vi kan kontrollera utspänningsvärdet genom att rotera potentiometern.
En buck-omvandlare är en DC-till-DC-omvandlare, som minskar likspänningen. Det är precis som en transformator med en skillnad; medan transformatorn stiger ner växelspänningsomvandlaren stiger ner likspänningen. Effektiviteten hos buck-omvandlaren är lägre än en transformator.
De viktigaste komponenterna i buck-omvandlaren är mosfet; antingen n-kanal eller p-kanal och högfrekvent Square Pulse Generator (antingen en timer-IC eller mikrokontroller). Arduino används här som Pulse Generator, en 555 Timer IC kan också användas för detta ändamål. Här har vi demonstrerat denna Buck-omvandlare genom att styra DC-motorhastigheten med potentiometer, testade också spänningen med multimeter. Kontrollera videon i slutet av den här artikeln.
Nödvändiga komponenter:
- Arduino Uno
- IRF540N
- Induktor (100Uh)
- Kondensator (100uf)
- Schottky-diod
- Potentiometer
- 10k, 100ohm motstånd
- Ladda
- 12v batteri
Kretsschema och anslutningar:
Gör anslutningar som visas i kretsschemat ovan för DC-DC Buck Converter.
- Anslut en terminal av induktorn till MOSFET-källan och en annan till LED i serie med 1k-motstånd. Last är ansluten parallellt med detta arrangemang.
- Anslut 10k-motstånd mellan grind och källa.
- Anslut kondensatorn parallellt med belastningen.
- Anslut batteriets positiva pol för att dräneras och negativt till kondensatorns minuspol.
- Anslut diodens pol till minus till batteriet och n-terminalen direkt till källan.
- PWM-stift av Arduino går till Mosfets port
- GND-stift av Arduino går till källan till Mosfet. Anslut den där eller kretsen fungerar inte.
- Anslut potentiometers extrema terminaler till 5V-stift respektive GND-stift av Arduino. Medan torkaranslutning till analog stift A1.
Arduinos funktion:
Som redan förklarats skickar Arduino klockpulser till basen av MOSFET. Frekvenserna för dessa klockpulser är ca. 65 kHz. Detta orsakar mycket snabb omkoppling av mosfet och vi får ett genomsnittligt spänningsvärde. Du bör lära dig mer om ADC och PWM i Arduino, vilket kommer att tydliggöra hur högfrekventa pulser genereras av Arduino:
- Arduino-baserad LED-dimmer med PWM
- Hur man använder ADC i Arduino Uno?
Funktion för MOSFET:
Mosfet används för två ändamål:
- För snabb växling av utspänningen.
- För att ge hög ström med mindre värmeavledning.
Induktorns funktion: Induktorn används för att styra spänningspiggar som kan skada mosfet. Induktorn lagrar energi när MOSFET är på och släpper ut den lagrade energin när MOSFET är avstängd. Eftersom frekvensen är mycket hög är induktansvärdet som krävs för detta ändamål mycket lågt (cirka 100uH).
Schottky-diodens funktion: Schottky-dioden kompletterar strömslingan när MOSFET stängs av och säkerställer därmed jämn strömförsörjning till belastningen. Bortsett från detta försvinner schottky-dioden mycket låg värme och fungerar bra vid högre frekvens än vanliga dioder.
Funktion av LED: Lysdioden
för LED indikerar nedgångsspänningen över belastningen. När vi vrider på potentiometern varierar ljusstyrkan på LED.
Potentiometerns funktion:
När torkterminalen på potentiometern kastas till ett annat läge ändras spänningen mellan den och marken vilket i sin tur ändrar det analoga värdet som tas emot av stift A1 i arduino. Detta nya värde mappas sedan mellan 0 och 255 och ges sedan till pin 6 i Arduino för PWM.
** Kondensatorn utjämnar spänningen som ges för belastningen.
Varför motstånd mellan grind och källa?
Även det minsta bruset vid MOSFETs grind kan slå på det, så för att förhindra att detta händer rekommenderas det alltid att ansluta ett högt värdemotstånd mellan grinden och källan.
Kodförklaring:
Komplett Arduino-kod, för att generera högfrekventa pulser, ges i kodavsnittet nedan.
Koden är enkel och självförklarande, så här har vi bara förklarat några få delar av koden.
Variabel x tilldelas det analoga värdet som tas emot från den analoga stift A0 i Arduino
x = analogRead (A1);
Variabel vikt är tilldelad den mappade värde som är mellan 0 och 255. Här ADC värden av Arduino mappas till 2 till 255 med hjälp av kartfunktion i Arduino.
w = karta (x, 0,1023,0,255);
Normal frekvens av PWM för stift 6 är cirka 1 kHz. Denna frekvens är inte lämplig för ändamål som buck-omvandlare. Därför måste denna frekvens ökas till en mycket hög nivå. Detta kan uppnås med en enradskod i ogiltig installation:
TCCR0B = TCCR0B & B11111000 - B00000001; // ändra frekvens av pwm till 65 KHz ungefär
Arbeta med DC-DC Buck Converter:
När kretsen slås på, slås och släcks mosfet med en frekvens på 65 kHz. Detta gör att induktorn lagrar energi när mosfet är på och sedan ger den lagrade energin att ladda när mosfet stängs av. Eftersom detta händer med mycket hög frekvens får vi ett medelvärde av pulsad utspänning beroende på positionen för torkaranslutningen för potentiometern med avseende på 5v-terminalen. Och när denna spänning mellan torkaranslutningen och marken ökar ökar det mappade värdet på pwm-stift nr. 6 av Arduino.
Låt oss säga att det här mappade värdet är 200. Då är PWM-spänningen på stift 6 vid: = 3,921 volt
Och eftersom MOSFET är en spänningsberoende enhet, bestämmer denna pwm-spänning i slutändan spänningen över belastningen.
Här har vi demonstrerat denna Buck-omvandlare genom att rotera en DC-motor och på multimeter, se videon nedan. Vi har styrt motorns hastighet med potentiometer och styrt ljusstyrkan på LED med potentiometer.