- Potrebni materijali
- Dijagram elektroničkog opterećenja Arduino DC
- PCB dizajn i Gerber datoteka
- Naručivanje PCB-a od AllPCB-a
- Arduino kod za podesivo istosmjerno opterećenje
- Testiranje našeg podesivog istosmjernog opterećenja
Ako ste ikad radili s baterijama, SMPS krugovima ili drugim krugovima napajanja, tada bi se često moglo dogoditi da morate testirati svoj izvor napajanja tako da ga učitate kako biste provjerili kako radi u različitim uvjetima punjenja. Uređaj koji se obično koristi za provođenje ove vrste ispitivanja naziva se konstantno istosmjerno opterećenje, što nam omogućuje podešavanje izlazne struje vašeg izvora napajanja, a zatim je održava konstantnom dok se ponovno ne prilagodi. U ovom uputstvu naučit ćemo kako izgraditi vlastito podesivo elektroničko opterećenje pomoću Arduina, koji može uzeti maksimalni ulazni napon od 24V i odvoditi struju do 5A. Za ovaj projekt koristili smo PCB ploče koje proizvodi AllPCB, profesionalni pružatelj usluga proizvodnje i montaže PCB-a u Kini.
U našem prethodnom vodiču za izvor napona s kontroliranim naponom objasnili smo kako se koristi operativno pojačalo s MOSFET-om i koristi krug izvora napajanja pod naponom. Ali u ovom uputstvu primijenit ćemo taj sklop i napraviti digitalno kontrolirani izvor struje. Očito je da digitalni upravljani izvor struje zahtijeva digitalni sklop i da bi služio svrsi, koristi se Arduino NANO. Arduino NANO pružit će potrebne kontrole za istosmjerno opterećenje.
Krug se sastoji od tri dijela. Prvi dio je odjeljak Arduino Nano, drugi dio je digitalno-analogni pretvarač, a treći dio je čisti analogni sklop gdje se koristi dvostruko operativno pojačalo u jednom paketu koje će kontrolirati odjeljak opterećenja. Ovaj je projekt nadahnut postom na Arduinu, međutim, krug je promijenjen radi manje složenosti s osnovnim značajkama da ga svi mogu graditi.
Naše elektroničko opterećenje dizajnirano je za sljedeće ulazne i izlazne sekcije.
- Dvije ulazne sklopke za povećanje i smanjenje opterećenja.
- LCD koji će prikazati postavljeno opterećenje, stvarno opterećenje i napon opterećenja.
- Maksimalna struja opterećenja ograničena je na 5A.
- Maksimalni ulazni napon je 24V za opterećenje.
Potrebni materijali
Komponente potrebne za izradu istosmjernog istosmjernog opterećenja navedene su u nastavku.
- Arduino nano
- LCD s 16x2 znaka
- Utičnica s dvije cijevi
- Mosfet irf540n
- Mcp4921
- Lm358
- 5-vatni ranžirni otpor.1 ohma
- 1k
- 10k - 6kom
- Hladnjak
- .1uF 50v
- 2k - 2kom
Dijagram elektroničkog opterećenja Arduino DC
U donjoj shemi operacijsko pojačalo ima dva odjeljka. Jedno je upravljanje MOSFET-om, a drugo pojačavanje osjetne struje. Također možete provjeriti video zapis na dnu ove stranice koji objašnjava kompletan rad sklopa. Prvi odjeljak sadrži R12, R13 i MOSFET. R12 se koristi za smanjenje učinka opterećenja na odjeljak povratne sprege, a R13 se koristi kao Mosfetov otpornik vrata.

Dodatna dva otpornika R8 i R9 koriste se za otkrivanje napona napajanja napajanja koji će biti opterećen ovim lažnim opterećenjem. Prema pravilu djelitelja napona, ova dva otpornika podržavaju najviše 24V. Više od 24 V proizvest će napon koji neće biti prikladan za Arduino pinove. Stoga pripazite da ne priključite napajanje koje ima više od 24V izlaznog napona.
Otpornik R7 ovdje je stvarni otpornik opterećenja. To je otpor od 5 W,.1 Ohm. Prema zakonu o snazi, on će podržavati maksimalno 7A (P = I 2 R), ali za sigurniju stranu pametnije je ograničiti struju opterećenja najviše 5A. Prema tome, trenutno maksimalno opterećenje od 24V, 5A može se postaviti ovim lažnim opterećenjem.
Drugi dio pojačala konfiguriran je kao pojačalo pojačanja. Omogućit će 6x dobitak. Tijekom protoka struje pojavit će se pad napona. Na primjer, kada kroz otpor teče 5A struje, pad napona bit će 0,5 V na razdjelnom otporniku.1 Ohms (V = I x R) prema omskom zakonu. Neinvertirajuće pojačalo pojačat će ga na x6, stoga će 3V biti izlaz iz drugog dijela pojačala. Ovaj će izlaz osjetiti Arduino nano analogni ulazni pin i izračunat će se struja.
Prvi dio pojačala konfiguriran je kao sklop sljednika napona koji će upravljati MOSFET-om prema ulaznom naponu i dobiti željeni povratni napon zbog struje opterećenja koja teče kroz ranžirni otpornik.
MCP4921 je digitalno-analogni pretvarač. DAC koristi SPI komunikacijski protokol za dobivanje digitalnih podataka iz bilo koje jedinice mikrokontrolera i osigurava analogni izlaz napona ovisno o njemu. Ovaj napon je ulaz op-pojačala. Prethodno smo također naučili kako koristiti ovaj MCP4921 DAC s PIC-om.
S druge strane, nalazi se Arduino Nano koji će digitalnim podacima omogućiti DAC putem SPI protokola i kontrolirati opterećenje, također prikazujući podatke u prikazu znakova 16x2. Koriste se dvije dodatne stvari, a to je gumb za smanjenje i povećanje. Umjesto spajanja na digitalni pin, on je povezan u analogne pinove. Stoga ga možete promijeniti u drugu vrstu prekidača poput klizača ili analognog kodera. Također, izmjenom koda mogu se dobiti neobrađeni analogni podaci za kontrolu opterećenja. Ovo također izbjegava problem prekida prekidača.
Konačno, povećanjem opterećenja, Arduino nano će dostaviti podatke o opterećenju na DAC u digitalnom formatu, DAC će pružiti analogne podatke na operacijsko pojačalo, a operativno pojačalo će upravljati MOSFET-om prema ulaznom naponu operativnog pojačala. Konačno, ovisno o protoku struje opterećenja kroz ranžirni otpornik, pojavit će se pad napona koji će se dalje pojačavati drugim kanalom LM358, a dobivat će Arduino nano. To će biti prikazano na zaslonu znakova. Ista stvar će se dogoditi kada korisnik pritisne gumb za smanjenje.
PCB dizajn i Gerber datoteka
Budući da ovaj krug ima veliku strujnu putanju, pametniji je izbor koristiti taktike dizajna PCB-a za uklanjanje neželjenih slučajeva kvara. Dakle, PCB je dizajniran za ovo istosmjerno opterećenje. Koristio sam Eagle PCB Design Software za dizajn svoje PCB-a. Možete odabrati bilo koji PCB Cad softver. Konačno dizajnirana PCB u CAD softveru prikazana je na donjoj slici,

Jedan važan čimbenik koji treba primijetiti tijekom dizajna ovog PCB-a jest korištenje debele ravnine snage za pravilan protok struje po cijelom krugu. Tu su i VIAS za šavove za zemlju (slučajni vias u ravnini tla) koji se koriste za pravilan protok tla u oba sloja do vrha i dna.
Datoteku Gerber ovog PCB-a također možete preuzeti s donje poveznice i koristiti za izradu.
- Preuzmite podesivu elektroničku DC Gerber datoteku
Naručivanje PCB-a od AllPCB-a
Jednom kada budete spremni s Gerber datotekom, možete je koristiti za izradu PCB-a. Kad smo kod toga, pojavljuje se sponzor ovog članka ALLPCB, koji su poznati po svojim visokokvalitetnim PCB-ima i ultrabrzom otpremanju. Osim proizvodnje PCB-a, AllPCB također nudiSklop PCB-a i izvor komponenata.
Da biste naručili PCB od njih, posjetite allpcb.com i prijava. Zatim na početnu stranicu unesite dimenzije vaše PCB-a i potrebnu količinu kao što je prikazano u nastavku. Zatim kliknite na Citiraj sada.

Sada možete promijeniti ostale parametre vaše PCB-a, poput broja slojeva, boje maske, debljine itd. S desne strane možete odabrati svoju zemlju i željenu opciju otpreme. Ovo će vam pokazati vrijeme isporuke i ukupan iznos koji treba platiti. Odabrao sam DHL i moj ukupni iznos je 26 USD, ali ako ste prvi put kupac, cijene će pasti na blagajni. Zatim kliknite Dodaj u košaricu, a zatim kliknite Odjava sada.

Sada možete kliknuti na prijenos svoje Gerber datoteke klikom na "Upload Gerber", a zatim kliknite na kupnju.

Na sljedećoj stranici možete unijeti adresu za dostavu i provjeriti konačnu cijenu koju morate platiti za PCB. Zatim možete pregledati svoju narudžbu, a zatim kliknuti na Pošalji za plaćanje.

Nakon što potvrdite narudžbu, možete sjesti i preusmjeriti kako bi PCB stigao pred vaš prag. Narudžbu sam primio nakon nekoliko dana, a zatim je pakiranje bilo uredno, kao što je prikazano dolje.

Kvaliteta PCB-a bila je dobra kao i uvijek kao što se i sami možete uvjeriti na slikama ispod. Gornja i donja strana ploče prikazane su u nastavku.

Nakon što nabavite ploču, možete nastaviti sa sastavljanjem svih komponenata. Moja gotova ploča izgleda otprilike ovako prikazano dolje.

Zatim možete učitati kod i uključiti modul kako biste provjerili kako radi. Kompletni kod za ovaj projekt dat je na dnu ove stranice. Objašnjenje koda je sljedeće.
Arduino kod za podesivo istosmjerno opterećenje
Kôd je prilično jednostavan. Isprva smo uključili SPI i datoteke zaglavlja LCD-a, kao i postavili maksimalni logički napon, igle za odabir čipa itd.
#include
Ovaj se odjeljak sastoji od potrebnih deklaracija cijelih brojeva i varijabli povezanih s protokom programa. Također, postavljamo pridružene periferne igle s Arduino Nano-om.
const int slaveSelectPin = 10; // Chip select pin int number = 0; int porast = A2; // Povećanje pina int smanjenje = A3; // smanjivanje pin-a int current_sense = A0; // trenutni osjetnik pin int voltage_sense = A1; // pin osjetnika napona int state1 = 0; int stanje2 = 0; int Postavi = 0; plutajući volt = 0; plutajuće opterećenje_struja = 0,0; plutajući_napon_napona = 0,0; plutajuća struja = 0,0; napon plovka = 0,0; LCD LiquidCrystal (7, 6, 5, 4, 3, 2); // LCD igle
Ovo se koristi za postavljanje LCD-a i SPI-a. Također, ovdje su postavljene upute za pin.
void setup () { pinMode (slaveSelectPin, OUTPUT); pinMode (povećanje, ULAZ); pinMode (smanjenje, ULAZ); pinMode (trenutni_sense, INPUT); pinMode (napon_sense, INPUT); // inicijalizira SPI: SPI.begin (); // postavljanje broja LCD stupaca i redaka na LCD-u: lcd.begin (16, 2); // Ispis poruke na LCD. lcd.print ("Digital Load"); lcd.setCursor (0,1); lcd.print ("Circuit Digest"); kašnjenje (2000); }
Koristi se za pretvaranje vrijednosti DAC.
void convert_DAC (nepotpisana int vrijednost) { / * Veličina koraka = 2 ^ n, Prema tome 12bit 2 ^ 12 = 4096 Za referencu od 5V, korak će biti 5/4095 = 0,0012210012210012V ili 1mV (približno) * / nepotpisani int spremnik; nepotpisani int MSB; nepotpisan int LSB; / * Korak: 1, pohranio je 12-bitne podatke u spremnik Pretpostavimo da su podaci 4095, u binarnom obliku 1111 1111 1111 * / container = value; / * Korak: 2 Stvaranje lažnog 8-bitnog. Dakle, dijeljenjem 256, gornja 4 bita se hvataju u LSB LSB = 0000 1111 * / LSB = container / 256; / * Korak: 3 Slanje konfiguracije probijanjem 4-bitnih podataka. LSB = 0011 0000 ILI 0000 1111. Rezultat je 0011 1111 * / LSB = (0x30) - LSB; / * Korak: 4 Spremnik i dalje ima 21-bitnu vrijednost. Izdvajanje donjih 8 bitova. 1111 1111 I 1111 1111 1111. Rezultat je 1111 1111 što je MSB * / MSB = 0xFF & container; / * Korak: 4 Slanje podataka od 16 bita dijeljenjem u dva bajta. * / digitalWrite (slaveSelectPin, LOW); kašnjenje (100); SPI.transfer (LSB); SPI.transfer (MSB); kašnjenje (100); // podignite SS pin visoko da biste poništili odabir čipa: digitalWrite (slaveSelectPin, HIGH); }
Ovaj se odjeljak koristi za trenutne operacije povezane sa senzorima.
plutajuća struja_čitavanja (void) { load_current = 0; za (int a = 0; a <prosjek; a ++) { opterećenje_toka = opterećenje_toka + analogRead (current_sense); } load_current = load_current / prosjek; load_current = (load_current * MAX_VOLT) / 1024; load_current = (load_current / opamp_gain) / load_resistor; povrat load_current; }
To se koristi za očitavanje napona opterećenja.
plutajući_napon_čitavanja (praznina) { load_voltage = 0; za (int a = 0; a <prosjek; a ++) { load_voltage = load_voltage + analogRead (voltage_sense); } napon_napona = napon_napona / prosjek; load_voltage = ((load_voltage * MAX_VOLT) /1024.0) * 6; povratno opterećenje_napon; }
Ovo je stvarna petlja. Ovdje se mjere koraci prekidača i podaci se šalju na DAC. Nakon prijenosa podataka mjeri se stvarni protok struje i napon opterećenja. Obje vrijednosti konačno su otisnute i na LCD-u.
void loop () { state1 = analogRead (povećanje); if (stanje1> 500) { kašnjenje (50); stanje1 = analogRead (povećanje); ako (stanje1> 500) { volt = volt + 0,02; } } stanje2 = analogRead (smanjenje); if (stanje2> 500) { kašnjenje (50); stanje2 = analogRead (smanjenje); if (stanje2> 500) { if (volt == 0) { volt = 0; } ostalo { volt = volt-0,02; } } } broj = volt / 0,0012210012210012; convert_DAC (broj); napon = read_voltage (); trenutna = struja_čitanja (); lcd.setCursor (0, 0); lcd.print ("Postavi vrijednost"); lcd.print ("="); Postavljeno = (volt / 2) * 10000; lcd.print (Set); lcd.print ("mA"); lcd.setCursor (0,1); lcd.print ("I"); lcd.print ("="); lcd.print (trenutni); lcd.print ("A"); lcd.print ("V"); lcd.print ("="); lcd.ispis (napon); lcd.print ("V"); // lcd.print (load_voltage); //lcd.print("mA "); // odgoda (1000); //lcd.clear (); }
Testiranje našeg podesivog istosmjernog opterećenja
Digitalni krug opterećenja zalemljen je i napaja se pomoću izvora napajanja od 12 V. Upotrijebio sam svoju litijevu bateriju od 7,4 V na strani izvora napajanja i spojio stezaljku kako bih provjerio kako radi. Kao što vidite kada je podešena struja 300mA, krug crpi 300mA iz baterije što se mjeri stezaljkom kao 310mA.

Kompletan rad sklopa može se pronaći u video linku dolje. Nadam se da ste razumjeli projekt i uživali u izgradnji nečeg korisnog. Ako imate pitanja, ostavite ih u odjeljku za komentare ili koristite forume.
