- Potrebné materiály
- Schéma elektronického zaťaženia Arduino DC
- Dizajn dosiek plošných spojov a súbor Gerber
- Objednávanie DPS u AllPCB
- Arduino kód pre nastaviteľné jednosmerné zaťaženie
- Testuje sa naše nastaviteľné jednosmerné zaťaženie
Ak ste niekedy pracovali s batériami, obvodmi SMPS alebo inými obvodmi napájacieho zdroja, často by sa mohlo stať, že budete musieť vyskúšať svoj zdroj napájania jeho načítaním, aby ste skontrolovali jeho výkon pri rôznych podmienkach zaťaženia. Zariadenie, ktoré sa bežne používa na vykonanie tohto typu testu, sa nazýva konštantné prúdové jednosmerné zaťaženie, ktoré nám umožňuje upraviť výstupný prúd vášho zdroja napájania a potom ho udržiavať na konštantnej hodnote, kým sa znova nezmení. V tomto tutoriále sa dozvieme, ako zostaviť našu vlastnú nastaviteľnú elektronickú záťaž pomocou Arduina, ktoré môže trvať maximálne vstupné napätie 24V a odbíjať prúd až 5A. Pre tento projekt sme použili dosky s plošnými spojmi, ktoré vyrába spoločnosť AllPCB, čínsky profesionálny poskytovateľ služieb výroby a montáže PCB.
V našom predchádzajúcom výučbe zdroja napätia riadeného napätím sme vysvetlili, ako používať operačný zosilňovač s MOSFET a využívať obvod zdroja napätia riadený napätím. Ale v tomto návode použijeme daný obvod a vytvoríme digitálne riadený zdroj prúdu. Je zrejmé, že digitálne riadený zdroj prúdu vyžaduje digitálny obvod a na tento účel sa používa Arduino NANO. Arduino NANO poskytne požadované ovládania pre DC zaťaženie.
Obvod sa skladá z troch častí. Prvá časť je časť Arduino Nano, druhá časť je digitálno-analógový prevodník a tretia časť je čisto analógový obvod, v ktorom sa používa duálny operačný zosilňovač v jednom balení, ktorý bude ovládať záťažovú časť. Tento projekt je inšpirovaný príspevkom na Arduine, okruh je však zmenený kvôli menšej zložitosti a so základnými vlastnosťami pre jeho zostavenie.
Naša elektronická záťaž je navrhnutá tak, aby mala nasledujúce vstupné a výstupné časti.
- Dva vstupné spínače na zvýšenie a zníženie záťaže.
- LCD, ktorý zobrazí nastavenú záťaž, skutočnú záťaž a napätie záťaže.
- Maximálny prúd záťaže je obmedzený na 5A.
- Maximálne vstupné napätie pre záťaž je 24V.
Potrebné materiály
Ďalej sú uvedené komponenty potrebné na zostavenie jednosmernej elektronickej záťaže.
- Arduino nano
- 16 x 2 znakový LCD
- Dvojhlavňová zásuvka
- Mosfet irf540n
- Mcp4921
- Lm358
- 5watt bočníkový rezistor, 1 ohm
- 1k
- 10k - 6ks
- Chladič
- .1uF 50v
- 2k - 2ks
Schéma elektronického zaťaženia Arduino DC
V nasledujúcej schéme má operačný zosilňovač dve sekcie. Jedným z nich je riadenie MOSFET a druhým zosilňovanie snímaného prúdu. Môžete si tiež pozrieť video v spodnej časti tejto stránky, ktoré vysvetľuje úplné fungovanie obvodu. Prvá časť má R12, R13 a MOSFET. R12 sa používa na zníženie účinku zaťaženia na spätnoväzbovú časť a R13 sa používa ako odpor brány Mosfet.
Ďalšie dva odpory R8 a R9 sa používajú na snímanie napájacieho napätia napájacieho zdroja, ktoré bude namáhané touto atrapou záťaže. Podľa pravidla deliča napätia tieto dva odpory podporujú maximálne 24V. Viac ako 24 V vytvorí napätie, ktoré nebude vhodné pre piny Arduino. Dávajte preto pozor, aby ste nepripojili napájací zdroj, ktorý má výstupné napätie viac ako 24V.
Rezistor R7 je tu rezistor skutočného zaťaženia. Jedná sa o odpor 5 W, 0,1 Ohm. Podľa zákona o napájaní bude podporovať maximálne 7 A (P = I 2 R), ale z bezpečnostných dôvodov je rozumnejšie obmedziť záťažový prúd na maximálne 5 A. Preto v súčasnosti môže byť táto atrapa zaťaženia nastavená na maximálnu záťaž 24 V, 5 A.
Ďalšia časť zosilňovača je nakonfigurovaná ako zosilňovač zosilnenia. Poskytne 6-násobný zisk. Počas toku prúdu sa objaví pokles napätia. Napríklad keď odporom preteká prúd 5A, pokles napätia bude podľa ohmového zákona o 0,5 V cez bočný odpor 0,1 Ohm (V = I x R). Neinvertujúci zosilňovač ho zosilní na x6, preto bude výstupom z druhej časti zosilňovača 3 V. Tento výstup bude snímaný analógovým vstupným pinom Arduino a bude vypočítaný prúd.
Prvá časť zosilňovača je nakonfigurovaná ako obvod sledovača napätia, ktorý bude riadiť MOSFET podľa vstupného napätia a získať požadované spätnoväzbové napätie v dôsledku zaťažovacieho prúdu pretekajúceho bočníkom.
MCP4921 je digitálno-analógový prevodník. DAC používa komunikačný protokol SPI na získanie digitálnych údajov z ktorejkoľvek jednotky mikrokontroléra a na základe nich poskytuje analógový výstup napätia. Toto napätie je vstupom operačného zosilňovača. Predtým sme sa tiež naučili, ako používať tento MCP4921 DAC s PIC.
Na druhej strane je tu Arduino Nano, ktoré poskytne digitálne údaje DAC prostredníctvom protokolu SPI a bude riadiť zaťaženie a údaje bude zobrazovať aj na displeji s znakmi 16 x 2. Používajú sa dve ďalšie veci, a to tlačidlo zníženia a zvýšenia. Namiesto pripojenia k digitálnemu kolíku je pripojený k analógovým pinom. Preto je možné ho zmeniť na iný typ prepínačov, ako je posuvník alebo analógový kódovač. Tiež úpravou kódu možno poskytnúť surové analógové dáta na riadenie záťaže. Tým sa tiež zabráni problémom s odskokmi od zmeny switcha.
Nakoniec zvýšením záťaže Arduino nano poskytne údaje o zaťažení DAC v digitálnom formáte, DAC poskytne analógové údaje operačnému zosilňovaču a operačný zosilňovač bude riadiť MOSFET podľa vstupného napätia operačného zosilňovača. Nakoniec sa v závislosti od toku zaťažovacieho prúdu cez bočníkový rezistor objaví pokles napätia, ktorý sa ďalej zosilní druhým kanálom LM358 a získa ho Arduino nano. Toto sa zobrazí na displeji znakov. To isté sa stane, keď používateľ stlačí tlačidlo zníženia.
Dizajn dosiek plošných spojov a súbor Gerber
Pretože tento obvod má cestu vysokého prúdu, je rozumnejšou voľbou použiť správnu taktiku návrhu DPS na odstránenie nežiaducich prípadov porúch. PCB je teda navrhnutá pre toto jednosmerné zaťaženie. Na návrh svojej dosky plošných spojov som použil program Eagle PCB Design Software. Môžete si zvoliť ľubovoľný softvér PCB Cad. Konečná navrhnutá doska plošných spojov v softvéri CAD je zobrazená na nasledujúcom obrázku,
Jedným dôležitým faktorom, ktorý si musíte všimnúť počas návrhu tejto dosky plošných spojov, je použitie silnej výkonovej roviny pre správny tok prúdu v celom obvode. K dispozícii je tiež zemné šitie VIAS (náhodné priechody v základnej rovine), ktoré sa používajú na správne prúdenie zeme v oboch vrstvách smerom hore a dole.
Môžete si tiež stiahnuť súbor Gerber tohto PCB z odkazu dole a použiť ho na výrobu.
- Stiahnite si nastaviteľný elektronický súbor zaťaženia Gerber
Objednávanie DPS u AllPCB
Len čo budete pripravení na svoj súbor Gerber, môžete ho použiť na výrobu svojej dosky plošných spojov. Keď už hovoríme o tom, vychováva sponzora tohto článku ALLPCB, ktorý je známy svojimi kvalitnými PCB a ultrarýchlou dopravou. Okrem výroby dosiek plošných spojov poskytuje aj AllPCBZostavenie DPS a zabezpečenie komponentov.
Ak chcete od nich získať objednávku na PCB, navštívte allpcb.com a registrácia. Potom na domovskej stránke zadajte rozmery vašej DPS a požadované množstvo, ako je uvedené nižšie. Potom kliknite na Citovať.
Teraz môžete zmeniť ďalšie parametre vašej DPS, ako je počet vrstiev, farba masky, hrúbka atď. Na pravej strane môžete zvoliť svoju krajinu a preferovanú možnosť prepravy. To vám ukáže čas prípravy a celkovú sumu, ktorá sa má zaplatiť. Vybral som si DHL a moja celková suma je 26 dolárov, ale ak ste zákazníkom prvýkrát, ceny klesnú v pokladni. Potom kliknite na položku Pridať do košíka a potom na položku Odhlásiť sa.
Teraz môžete kliknúť na upload vášho súboru Gerber kliknutím na „Upload Gerber“ a potom kliknúť na kúpiť.
Na nasledujúcej stránke môžete zadať dodaciu adresu a skontrolovať konečnú cenu, ktorú musíte zaplatiť za dosku s plošnými spojmi. Potom môžete skontrolovať svoju objednávku a kliknutím na tlačidlo Odoslať uskutočniť platbu.
Po potvrdení objednávky sa môžete pohodlne posadiť a reléovať dosku plošných spojov až k dverám. Objednávku som dostal po niekoľkých dňoch a balenie bolo upravené, ako je uvedené nižšie.
Kvalita DPS bola dobrá ako vždy, ako sami vidíte na obrázkoch nižšie. Horná strana a spodná strana dosky sú zobrazené nižšie.
Akonáhle získate svoju dosku, môžete pokračovať v zostavovaní všetkých komponentov. Moja hotová doska vyzerá asi takto, nižšie.
Ďalej môžete nahrať kód a zapnúť modul a skontrolovať jeho funkčnosť. Celý kód tohto projektu je uvedený v spodnej časti tejto stránky. Vysvetlenie kódu je nasledovné.
Arduino kód pre nastaviteľné jednosmerné zaťaženie
Kód je dosť jednoduchý. Spočiatku sme zahrnuli hlavičkové súbory SPI a LCD, ako aj nastavenie maximálneho logického napätia, kolíky na výber čipov atď.
#include
Táto časť obsahuje požadované deklarácie celých čísel a premenných súvisiace s tokom programu. Tiež sme nastavili kolíky pridružených periférií na Arduino Nano.
const int slaveSelectPin = 10; // Chip select pin int number = 0; zvýšenie int = A2; // Zvýšiť pin int pokles = A3; // zmenšiť pin int current_sense = A0; // aktuálny snímací pin int voltage_sense = A1; // napäťový snímač pin int state1 = 0; int stav2 = 0; int množina = 0; float volt = 0; float load_current = 0,0; float load_voltage = 0,0; plavákový prúd = 0,0; plavákové napätie = 0,0; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // LCD kolíky
Používa sa na nastavenie LCD a SPI. Tu sú tiež stanovené smery pinov.
void setup () { pinMode (slaveSelectPin, OUTPUT); pinMode (zvýšenie, VSTUP); pinMode (pokles, VSTUP); pinMode (current_sense, INPUT); pinMode (voltage_sense, INPUT); // inicializovať SPI: SPI.begin (); // nastavenie počtu stĺpcov a riadkov LCD: lcd.begin (16, 2); // Vytlačí správu na LCD. lcd.print ("Digitálne načítanie"); lcd.setCursor (0, 1); lcd.print ("Prehľad okruhov"); meškanie (2000); }
Používa sa na prevod hodnoty DAC.
void convert_DAC (unsigned int value) { / * Veľkosť kroku = 2 ^ n, preto 12bit 2 ^ 12 = 4096 Pre referenciu 5V bude krok 5/4095 = 0,0012210012210012V alebo 1mV (približne) * / nepodpísaný int kontajner; unsigned int MSB; nepodpísaný int LSB; / * Krok: 1, uloženie 12-bitových údajov do kontajnera Predpokladajme, že dáta sú 4095, v binárnom formáte 1111 1111 1111 * / container = value; / * Krok: 2 Vytvorenie figuríny s 8 bitmi. Takže delením 256 sa zachytia horné 4 bity v LSB LSB = 0000 1111 * / LSB = kontajner / 256; / * Krok: 3 Odoslanie konfigurácie pomocou dierovania 4-bitových údajov. LSB = 0011 0000 ALEBO 0000 1111. Výsledok je 0011 1111 * / LSB = (0x30) - LSB; / * Krok: 4 Kontajner má stále hodnotu 21 bitov. Vyberanie spodných 8 bitov. 1111 1111 A 1111 1111 1111. Výsledok je 1111 1111, čo je MSB * / MSB = 0xFF & container; / * Krok: 4 Odoslanie 16-bitových údajov rozdelením na dva bajty. * / digitalWrite (slaveSelectPin, LOW); oneskorenie (100); SPI.transfer (LSB); SPI.transfer (MSB); oneskorenie (100); // vezmi pin SS vysoko na zrušenie výberu čipu: digitalWrite (slaveSelectPin, HIGH); }
Táto časť sa používa na operácie spojené so snímaním prúdu.
float read_current (void) { load_current = 0; for (int a = 0; a <priemer; a ++) { load_current = load_current + analogRead (current_sense); } load_current = load_current / average; load_current = (load_current * MAX_VOLT) / 1024; load_current = (load_current / opamp_gain) / load_resistor; return load_current; }
Používa sa na odčítanie zaťažovacieho napätia.
float read_voltage (void) { load_voltage = 0; pre (int a = 0; a <priemer; a ++) { load_voltage = load_voltage + analogRead (voltage_sense); } load_voltage = load_voltage / priemer; load_voltage = (((load_voltage * MAX_VOLT) / 1024.0) * 6; spätné zaťaženie_napätie; }
Toto je skutočná slučka. Tu sa merajú kroky prepínania a údaje sa odosielajú do DAC. Po prenose údajov sa meria skutočný prúdový prúd a záťažové napätie. Obe hodnoty sú tiež konečne vytlačené na LCD.
void loop () { state1 = analogRead (increase); if (stav1> 500) { oneskorenie (50); state1 = analogRead (zvýšenie); if (stav1> 500) { volt = volt + 0,02; } } state2 = analogRead (pokles); if (state2> 500) { oneskorenie (50); stav2 = analogRead (pokles); if (state2> 500) { if (volt == 0) { volt = 0; } else { volt = volt-0,02; } } } číslo = volt / 0,0012210012210012; convert_DAC (číslo); napätie = read_voltage (); current = read_current (); lcd.setCursor (0, 0); lcd.print ("Nastaviť hodnotu"); lcd.print ("="); Sada = (volt / 2) * 10 000; lcd.print (sada); lcd.print ("mA"); lcd.setCursor (0, 1); lcd.print ("ja"); lcd.print ("="); lcd.print (aktuálny); lcd.print ("A"); lcd.print ("V"); lcd.print ("="); lcd.tlač (napätie); lcd.print ("V"); // lcd.print (load_voltage); //lcd.print("mA "); // oneskorenie (1 000); //lcd.clear (); }
Testuje sa naše nastaviteľné jednosmerné zaťaženie
Digitálny záťažový obvod je spájkovaný a napájaný pomocou zdroja napájania 12V. Použil som svoju lítiovú batériu 7,4 V na strane zdroja energie a pripojil som kliešťový merač, aby som skontroloval, ako funguje. Ako vidíte, keď je nastavený prúd 300 mA, obvod odoberá 300 mA z batérie, ktorá je tiež meraná klešťovým meračom ako 310 mA.
Kompletné fungovanie obvodu nájdete vo videu prepojenom nižšie. Dúfam, že ste pochopili projekt a bavilo vás stavať niečo užitočné. Ak máte akékoľvek otázky, nechajte ich v sekcii komentárov alebo použite fóra.