- Materials necessaris
- Diagrama de circuits de càrrega electrònica Arduino DC
- Disseny de PCB i fitxer Gerber
- Comandant el vostre PCB a AllPCB
- Codi Arduino per a càrrega DC ajustable
- Provant la nostra càrrega DC ajustable
Si alguna vegada heu treballat amb bateries, circuits SMPS o altres circuits de subministrament d’alimentació, sovint s’hauria produït la prova de la font d’energia carregant-la per comprovar el seu rendiment en diferents condicions de càrrega. Un dispositiu que s’utilitza habitualment per realitzar aquest tipus de proves s’anomena càrrega continuada de corrent constant, que ens permet ajustar el corrent de sortida de la vostra font d’energia i, a continuació, el manté constant fins que es torna a ajustar. En aquest tutorial, aprendrem a construir la nostra pròpia càrrega electrònica ajustable mitjançant Arduino, que pot agafar una tensió màxima d’entrada de 24V i drenar un corrent de fins a 5A. Per a aquest projecte, hem utilitzat taules de PCB fabricades per AllPCB, un proveïdor de serveis professionals de fabricació i muntatge de PCB amb seu a la Xina.
En el nostre tutorial anterior sobre font de corrent controlada per voltatge, hem explicat com utilitzar un amplificador operatiu amb un MOSFET i fer ús d’un circuit de font de corrent controlat per voltatge. Però en aquest tutorial, aplicarem aquest circuit i crearem una font de corrent controlada digitalment. Viouslybviament, una font de corrent controlada digitalment requereix un circuit digital i, per a això, s’utilitza un Arduino NANO. L'Arduino NANO proporcionarà els controls necessaris per a la càrrega de CC.
El circuit consta de tres parts. La primera part és la secció Arduino Nano, la segona part és el convertidor digital a analògic i la tercera part és un circuit analògic pur on s’utilitza un amplificador operatiu dual en un sol paquet que controlarà la secció de càrrega. Aquest projecte s’inspira en una publicació a Arduino, però, el circuit canvia per tenir menys complexitat amb funcions bàsiques perquè tothom el pugui construir.
La nostra càrrega electrònica està dissenyada per tenir les següents seccions d’entrada i sortida.
- Dos commutadors d'entrada per augmentar i disminuir la càrrega.
- Una pantalla LCD que mostrarà la càrrega configurada, la càrrega real i la tensió de càrrega.
- El corrent de càrrega màxim està limitat a 5A.
- La tensió màxima d’entrada és de 24V per a la càrrega.
Materials necessaris
Els components necessaris per construir una càrrega electrònica de CC es detallen a continuació.
- Arduino nano
- LCD de 16x2 caràcters
- Presa de dos canons
- Mosfet irf540n
- Mcp4921
- Lm358
- Resistència de derivació de 5 watts.1 ohms
- 1k
- 10k - 6pcs
- Dissipador de calor
- .1uF 50v
- 2k - 2pcs
Diagrama de circuits de càrrega electrònica Arduino DC
A l'esquema següent, l'amplificador operacional té dues seccions. Un és controlar el MOSFET i l'altre és amplificar el corrent detectat. També podeu consultar el vídeo a la part inferior d’aquesta pàgina que explica el funcionament complet del circuit. La primera secció té R12, R13 i MOSFET. R12 s’utilitza per reduir l’efecte de càrrega a la secció de retroalimentació i R13 s’utilitza com a resistència de porta Mosfet.

S’utilitzen dues resistències addicionals R8 i R9 per detectar la tensió d’alimentació de la font d’alimentació que es veurà estressada per aquesta càrrega fictícia. Segons la regla del divisor de tensió, aquestes dues resistències suporten un màxim de 24 V. Més de 24V produiran una tensió que no serà adequada per als pins Arduino. Així que tingueu cura de no connectar una font d'alimentació que tingui més de 24V de tensió de sortida.
La resistència R7 és la resistència de càrrega real aquí. És una resistència de 5 watts.1 Ohm. Segons la llei de potència, suportarà un màxim de 7A (P = I 2 R), però per al costat segur, és més prudent limitar el màxim de corrent de càrrega de 5A. Per tant, actualment es pot establir una càrrega màxima de 24 V, 5 A mitjançant aquesta càrrega fictícia.
Una altra secció de l'amplificador es configura com a amplificador de guany. Proporcionarà un guany de 6 vegades. Durant el flux de corrent, apareixerà una caiguda de tensió. Per exemple, quan 5A de corrent flueix a través de la resistència, la caiguda de tensió serà de 0,5 V a través de la resistència de derivació de 0,1 Ohms (V = I x R) segons la llei d’ohms. L’amplificador sense inversió l’amplificarà fins a x6, per tant, 3V serà la sortida de la segona part de l’amplificador. Aquesta sortida serà detectada pel pin d’entrada analògica nano Arduino i es calcularà el corrent.
La primera part de l'amplificador es configura com un circuit seguidor de tensió que controlarà el MOSFET segons la tensió d'entrada i obtindrà la tensió de retroalimentació desitjada a causa del corrent de càrrega que flueix a través de la resistència de derivació.
MCP4921 és el convertidor digital a analògic. El DAC utilitza el protocol de comunicació SPI per obtenir les dades digitals de qualsevol unitat de microcontrolador i proporcionar sortida de tensió analògica en funció d’ella. Aquest voltatge és l’entrada de l’ampli operatiu. Prèviament, també hem après a utilitzar aquest MCP4921 DAC amb PIC.
A l’altra banda, hi ha un Arduino Nano que proporcionarà les dades digitals al DAC mitjançant el protocol SPI i controlarà la càrrega, mostrant també les dades a la pantalla de 16x2 caràcters. S'utilitzen dues coses addicionals, és a dir, el botó de disminució i augment. En lloc de connectar-se a un pin digital, es connecta als pins analògics. Per tant, es pot canviar per un altre tipus d’interruptors com ara el control lliscant o el codificador analògic. A més, modificant el codi es poden proporcionar dades analògiques en brut per controlar la càrrega. Això també evita el problema de rebut de commutador.
Finalment, augmentant la càrrega, el nano Arduino proporcionarà les dades de càrrega al DAC en format digital, el DAC proporcionarà dades analògiques a l’amplificador operatiu i l’amplificador operatiu controlarà el MOSFET segons la tensió d’entrada de l’amplificador operacional.. Finalment, depenent del flux de corrent de càrrega a través de la resistència de derivació, apareixerà una caiguda de tensió que serà amplificada pel segon canal de LM358 i obtinguda pel nano Arduino. Això es mostrarà a la pantalla de caràcters. El mateix passarà quan l'usuari prem el botó de disminució.
Disseny de PCB i fitxer Gerber
Com que aquest circuit té un recorregut de corrent elevat, és una opció més encertada utilitzar tàctiques adequades de disseny de PCB per eliminar casos de fallada no desitjats. Per tant, s’ha dissenyat un PCB per a aquesta càrrega de CC. He utilitzat el programari de disseny Eagle PCB per dissenyar el meu PCB. Podeu triar qualsevol programari PCB Cad. El PCB final dissenyat al programari CAD es mostra a la imatge següent,

Un factor important que cal tenir en compte durant el disseny d’aquest PCB és utilitzar un pla de potència espès per al flux de corrent adequat a tot el circuit. També hi ha costures VIAS (vias aleatòries al pla de terra) que s’utilitzen per a un flux de terra adequat tant a les capes cap a la part superior i inferior.
També podeu descarregar el fitxer Gerber d’aquest PCB des de l’enllaç següent i utilitzar-lo per a la fabricació.
- Descarregueu el fitxer Gerber de càrrega DC electrònica ajustable
Comandant el vostre PCB a AllPCB
Quan estigueu llest amb el fitxer Gerber, el podreu utilitzar per fabricar el vostre PCB. Parlant d’això, apareix el patrocinador d’aquest article ALLPCB, coneguts pels seus PCB d’alta qualitat i el seu enviament ultraràpid. A part de la fabricació de PCB, AllPCB també proporcionaMuntatge de PCB i proveïment de components.
Per obtenir la vostra comanda de PCB, visiteu allpcb.com i registre. A continuació, a la pàgina inicial, introduïu les dimensions del vostre PCB i la quantitat necessària, tal com es mostra a continuació. A continuació, feu clic a Cita ara.

Ara podeu canviar els altres paràmetres del vostre PCB, com ara el nombre de capes, el color de la màscara, el gruix, etc. A la part dreta, podeu triar el vostre país i l'opció d'enviament preferida. Això us mostrarà el temps d’execució i l’import total a pagar. He triat DHL i el meu import total és de 26 $, però si sou el primer client, els preus baixaran a la caixa. A continuació, feu clic a Afegeix a la cistella i, a continuació, feu clic a Comprovar ara.

Ara podeu fer clic a Carregar el fitxer Gerber fent clic a "Pujar Gerber" i, a continuació, a comprar.

A la pàgina següent, podeu introduir la vostra adreça d’enviament i comprovar el preu final que heu de pagar pel vostre PCB. A continuació, podeu revisar la comanda i fer clic a Envia per fer el pagament.

Un cop confirmada la comanda, podeu seure i retransmetre perquè el vostre PCB arribi a la vostra porta. Vaig rebre la meva comanda al cap de pocs dies i, aleshores, l’envàs estava net, tal com es mostra a continuació.

La qualitat del PCB va ser bona com sempre, com podeu veure per vosaltres mateixos a les imatges següents. A continuació es mostren la cara superior i la part inferior del tauler.

Un cop obtingueu el tauler, podeu procedir al muntatge de tots els components. El meu tauler acabat té un aspecte semblant al que es mostra a continuació.

A continuació, podeu penjar el codi i engegar el mòdul per comprovar el seu funcionament. El codi complet d’aquest projecte es dóna a la part inferior d’aquesta pàgina. L’explicació del codi és la següent.
Codi Arduino per a càrrega DC ajustable
El codi és bastant senzill. Al principi, vam incloure fitxers de capçalera SPI i LCD, així com establir el voltatge lògic màxim, pins de selecció de xips, etc.
#incloure
Aquesta secció consta de declaracions obligatòries relacionades amb el flux de programes d'enters i variables. A més, configurem els pins dels perifèrics associats amb Arduino Nano.
const int slaveSelectPin = 10; // Seleccioneu xip PIN int número = 0; int augment = A2; // Augmenta la reducció de pin int = A3; // disminueix el pin int current_sense = A0; // pin de sentit actual int voltage_sense = A1; // tensió pin pin int state1 = 0; int state2 = 0; int Conjunt = 0; voltatge flotant = 0; float load_current = 0,0; tensió de càrrega flotant = 0,0; corrent flotant = 0,0; tensió flotant = 0,0; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Pins LCD
S'utilitza per a la configuració de LCD i SPI. A més, les indicacions dels pins es defineixen aquí.
void setup () { pinMode (slaveSelectPin, OUTPUT); pinMode (augment, INPUT); pinMode (disminució, INPUT); pinMode (sentit_actual, INPUT); pinMode (tension_sense, INPUT); // inicialitzar SPI: SPI.begin (); // configureu el nombre de columnes i files de la pantalla LCD: lcd.begin (16, 2); // Imprimiu un missatge a la pantalla LCD. lcd.print ("Càrrega digital"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); endarreriment (2000); }
S'utilitza per convertir el valor DAC.
void convert_DAC (valor int signat) { / * Mida del pas = 2 ^ n, per tant, 12 bits 2 ^ 12 = 4096 Per a la referència de 5 V, el pas serà 5/4095 = 0,0012210012210012V o 1 mV (aprox) * / contenidor int sense signe; sense signar int MSB; unsigned int LSB; / * Pas: 1, emmagatzema les dades de 12 bits al contenidor Suposem que les dades són 4095, en binari 1111 1111 1111 * / container = value; / * Pas: 2 Creació de Dummy de 8 bits. Així, dividint 256, els 4 bits superiors es capturen a LSB LSB = 0000 1111 * / LSB = contenidor / 256; / * Pas: 3 Enviament de la configuració punxant les dades de 4 bits. LSB = 0011 0000 O 0000 1111. El resultat és 0011 1111 * / LSB = (0x30) - LSB; / * Pas: 4 El contenidor encara té el valor de 21 bits. Extracció dels 8 bits inferiors. 1111 1111 I 1111 1111 1111. El resultat és 1111 1111 que és MSB * / MSB = 0xFF & container; / * Pas: 4 Enviar les dades de 16 bits dividint-los en dos bytes. * / digitalWrite (slaveSelectPin, LOW); retard (100); SPI.transfer (LSB); SPI.transfer (MSB); retard (100); // agafeu el pin SS alt per desseleccionar el xip: digitalWrite (slaveSelectPin, HIGH); }
Aquesta secció s'utilitza per a operacions relacionades amb la detecció actual.
float read_current (void) { load_current = 0; for (int a = 0; a <mitjana; a ++) { load_current = load_current + analogRead (current_sense); } càrrega_current = càrrega_current / mitjana; load_current = (load_current * MAX_VOLT) / 1024; load_current = (load_current / opamp_gain) / load_resistor; tornar carrega_current; }
S'utilitza per llegir la tensió de càrrega.
float read_voltage (void) { load_voltage = 0; for (int a = 0; a <mitjana; a ++) { càrrega_voltatge = càrrega_voltatge + analogRead (voltatge_sensat); } càrrega_voltatge = càrrega_voltatge / mitjana; càrrega_tensió = ((càrrega_tensió * MAX_VOLT) /1024.0) * 6; retorn càrrega_tensió; }
Aquest és el bucle real. Aquí es mesuren els passos de commutació i les dades s’envien al DAC. Després de transmetre les dades, es mesura el flux de corrent real i la tensió de càrrega. Tots dos valors també s’imprimeixen finalment a la pantalla LCD.
bucle buit () { estat1 = Llegir analògic (augment); if (state1> 500) { delay (50); estat1 = analògicLlegir (augmentar); if (estat1> 500) { volt = volt + 0,02; } } estat2 = analogRead (disminució); if (state2> 500) { delay (50); estat2 = analogRead (disminució); if (state2> 500) { if (volt == 0) { volt = 0; } else { volt = volt-0,02; } } } número = volt / 0,0012210012210012; convert_DAC (número); voltatge = voltatge_lectura (); actual = llegir_actual (); lcd.setCursor (0, 0); lcd.print ("Establir valor"); lcd.print ("="); Conjunt = (volt / 2) * 10000; lcd.print (conjunt); lcd.print ("mA"); lcd.setCursor (0, 1); lcd.print ("Jo"); lcd.print ("="); lcd.print (actual); lcd.print ("A"); lcd.print ("V"); lcd.print ("="); lcd.print (voltatge); lcd.print ("V"); // lcd.print (càrrega_voltatge); //lcd.print("mA "); // demora (1000); //lcd.clear (); }
Provant la nostra càrrega DC ajustable
El circuit de càrrega digital es solda i s’alimenta mitjançant una font d’alimentació de 12V. Vaig utilitzar la meva bateria de liti de 7,4 V a la font d’energia i vaig connectar un pinçòmetre per comprovar el seu funcionament. Com podeu veure quan el corrent establert és de 300 mA, el circuit treu 300 mA de la bateria, que també es mesura amb un pinçó de 310 mA.

El funcionament complet del circuit es troba al vídeo enllaçat a continuació. Espero que hagueu entès el projecte i us hagi agradat construir alguna cosa útil. Si teniu alguna pregunta, deixeu-los a la secció de comentaris o utilitzeu els fòrums.
