- Materials necessaris
- Esquema de connexions
- Unitat de mesura
- Unitat de càlcul i visualització
- Programació de l'Arduino
- Com es mesura amb més precisió?
- Treball i proves
Com a enginyers electrònics, sempre depenem de comptadors / instruments per mesurar i analitzar el funcionament d’un circuit. Començant amb un multímetre senzill fins a complexos analitzadors de qualitat de potència o DSO, tot té les seves pròpies aplicacions úniques. La majoria d'aquests comptadors estan disponibles i es poden comprar en funció dels paràmetres que es mesurin i de la seva precisió. Però de vegades podríem acabar en una situació en què necessitem construir els nostres propis comptadors. Suposem, per exemple, que esteu treballant en un projecte d'energia solar fotovoltaica i que voleu calcular el consum d'energia de la vostra càrrega, en aquests casos podem construir el nostre propi wattímetre mitjançant una plataforma de microcontrolador senzilla com Arduino.
Construir els vostres propis comptadors no només redueix el cost de les proves, sinó que també ens dóna espai per facilitar el procés de proves. Igual que, un wattímetre construït amb Arduino es pot modificar fàcilment per supervisar els resultats al monitor sèrie i traçar un gràfic al plotter serial o afegir una targeta SD per registrar automàticament els valors de voltatge, corrent i potència a intervals predefinits. Sona interessant oi !? Comencem doncs…
Materials necessaris
- Arduino Nano
- Amplificador operatiu LM358
- 7805 Regulador de tensió
- Pantalla LCD de 16 * 2
- Resistència de derivació de 0,22 ohm 2Watt
- Test de 10k
- Resistències de 10k, 20k, 2.2k, 1k
- Condensadors de 0,1 uF
- Prova de càrrega
- Tauler de perfils o taulers de pa
- Kit de soldadura (opcional)
Esquema de connexions
A continuació es mostra el diagrama complet del circuit del wattímetre arduino.

Per facilitar la comprensió, el circuit de vattímetres arduino es divideix en dues unitats. La part superior del circuit és la unitat de mesura i la part inferior del circuit és la unitat de càlcul i visualització. Per a les persones que són noves en aquest tipus de circuits, han seguit les etiquetes. L'exemple + 5V és una etiqueta que significa que tots els pins als quals està connectada l'etiqueta s'haurien de considerar tal com estan connectats entre si. Normalment s’utilitzen etiquetes per fer que el diagrama del circuit sembli net.
El circuit està dissenyat per adaptar-se a sistemes que funcionen entre 0-24V amb un rang de corrent de 0-1A tenint en compte les especificacions d’un solar fotovoltaic. Però podeu ampliar l'abast fàcilment un cop hàgiu entès el funcionament del circuit. El principi subjacent darrere del circuit és mesurar la tensió a través de la càrrega i el corrent a través d’ell per calcular la potència que consumeix. Tots els valors mesurats es mostraran en un LCD alfanumèric de 16 * 2.
Més endavant dividim el circuit en petits segments perquè puguem obtenir una imatge clara de com funciona el sagnat del circuit.
Unitat de mesura
La unitat de mesura consisteix en un divisor de potencial que ens ajuda a mesurar el voltatge i s’utilitza una resistència de tancament amb un amplificador operatiu sense inversió per ajudar-nos a mesurar el corrent a través del circuit. La part divisòria de potencial del circuit anterior es mostra a continuació

Aquí el voltatge d'entrada es representa per Vcc, tal com s'ha dit anteriorment, estem dissenyant el circuit per a un rang de voltatge de 0V a 24V. Però un microcontrolador com Arduino no pot mesurar valors tan alts de tensió; només pot mesurar la tensió de 0-5V. Per tant, hem de mapar (convertir) l’interval de tensió de 0-24V a 0-5V. Això es pot fer fàcilment utilitzant un circuit divisor de potencial, com es mostra a continuació. La resistència 10k i 2.2k junts formen el circuit divisor de potencial. El voltatge de sortida d’un divisor de potencial es pot calcular mitjançant les fórmules següents. El mateix que s’utilitza per decidir el valor de les seves resistències, podeu utilitzar la nostra calculadora en línia per calcular el valor de la resistència si esteu redissenyant el circuit.
Vout = (Vin × R2) / (R1 + R2)
El 0-5V mapat es pot obtenir a la part central que s’etiqueta com a Voltatge. Aquest voltatge mapat es pot alimentar posteriorment al pin Arduino Analog.
A continuació, hem de mesurar el corrent a través de LOAD. Com sabem, els microcontroladors només poden llegir tensió analògica, de manera que hem de convertir d'alguna manera el valor del corrent en tensió. Es pot fer simplement afegint una resistència (resistència de derivació) al recorregut que, segons la llei d'Ohm, farà caure un valor de tensió a través d'ell que sigui proporcional al corrent que hi circula. El valor d’aquesta caiguda de tensió serà molt menor, de manera que fem servir un amplificador operatiu per amplificar-la. El circuit per al mateix es mostra a continuació

Aquí el valor de la resistència de derivació (SR1) és de 0,22 ohms. Com es va dir anteriorment, estem dissenyant el circuit per a 0-1A, de manera que, basant-nos en la llei d’Ohms, podem calcular la caiguda de tensió a través d’aquesta resistència que serà d’uns 0,2 V quan un màxim de 1A de corrent passi per la càrrega. Aquest voltatge és molt petit perquè el pugui llegir un microcontrolador, fem servir un amplificador operatiu en mode d'amplificador sense inversió per augmentar el voltatge de 0,2 V a un nivell superior perquè l'Arduino pugui llegir-lo.
A la part superior es mostra l'Op-Amp en mode sense inversió. L'amplificador està dissenyat per tenir un guany de 21, de manera que 0,2 * 21 = 4,2V. A continuació es mostren les fórmules per calcular el guany de l’amplificador operatiu. També podeu utilitzar aquesta calculadora de guanys en línia per obtenir el valor de la vostra resistència si torneu a dissenyar el circuit.
Guany = Vout / Vin = 1 + (Rf / Rin)
Aquí, en el nostre cas, el valor de Rf és 20k i el valor de Rin és 1k, cosa que ens dóna un valor gian de 21. La tensió amplificada de l’amplificador Op es dóna a un filtre RC amb resistència 1k i un condensador de 0,1uF a filtreu qualsevol soroll que estigui acoblat. Finalment, la tensió s’alimenta al pin analògic Arduino.
L'última part que queda a la unitat de mesura és la part del regulador de tensió. Com que donarem una tensió d'entrada variable, necessitem un voltatge regulat de + 5V perquè l'Arduino i l'Op-amp funcionin. Aquesta tensió regulada la proporcionarà el regulador de voltatge 7805. A la sortida s’afegeix un condensador per filtrar el soroll.

Unitat de càlcul i visualització
A la unitat de mesura hem dissenyat el circuit per convertir els paràmetres de tensió i corrent en 0-5V que es poden alimentar als pins Arduino Analog. Ara, en aquesta part del circuit, connectarem aquests senyals de tensió a Arduino i també interfocarem una pantalla alfanumèrica de 16 × 2 amb l’Arduino perquè puguem veure els resultats. El circuit per al mateix es mostra a continuació

Com podeu veure, el pin de tensió està connectat al pin analògic A3 i el pin actual està connectat al pin analògic A4. La pantalla LCD s’alimenta des del + 5V del 7805 i està connectada als pins digitals d’Arduino per funcionar en mode de 4 bits. També hem utilitzat un potenciòmetre (10k) connectat al pin Con per variar el contrast de la pantalla LCD.
Programació de l'Arduino
Ara que coneixem bé el maquinari, obrim l'Arduino i comencem a programar. El propòsit del codi és llegir la tensió analògica del pin A3 i A4 i calcular el valor de tensió, corrent i potència i finalment mostrar-lo a la pantalla LCD. El programa complet per fer el mateix es dóna al final de la pàgina, que es pot utilitzar com a tal per al maquinari comentat anteriorment. A més, el codi es divideix en petits fragments i s'explica.
Com tots els programes, comencem, definint els pins que hem utilitzat. En el projecte de sortida, els pins A3 i A4 s’utilitzen per mesurar el voltatge i el corrent respectivament i els pins digitals 3,4,8,9,10 i 11 s’utilitzen per a la interfície de la pantalla LCD amb Arduino
int Llegir_Voltatge = A3; int Llegir_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Esmenta el número de pin de la connexió LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
També hem inclòs un fitxer de capçalera anomenat cristall líquid per connectar la pantalla LCD amb Arduino. A continuació, dins de la funció de configuració inicialitzem la pantalla LCD i mostrem un text d'introducció com a "Arduino Wattmeter" i esperem dos segons abans d'esborrar-lo. A continuació es mostra el codi del mateix.
void setup () { lcd.begin (16, 2); // Inicialitzar 16 * 2 lcd.print ("Arduino Wattmeter"); // Línia inicial del missatge 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Retard de la línia 2 del missatge d'introducció (2000); lcd.clear (); }
Dins de la funció de bucle principal, utilitzem la funció de lectura analògica per llegir el valor de tensió del pin A3 i A4. Com sabem, el valor de sortida Arduino ADC de 0-1203 ja que té un ADC de 10 bits. Aquest valor s'ha de convertir a 0-5V, que es pot fer multiplicant per (5/1023). De nou, anteriorment, al maquinari hem assignat el valor real de la tensió de 0-24V a 0-5V i el valor real de la forma actual de 0-1A a 0-5V. Per tant, ara hem d’utilitzar un multiplicador per tornar aquests valors al valor real. Això es pot fer multiplicant-lo per un valor multiplicador. El valor del multiplicador es pot calcular teòricament mitjançant les fórmules proporcionades a la secció de maquinari o si es té un conjunt conegut de valors de tensió i corrent, es pot calcular pràcticament.He seguit aquesta última opció perquè sol ser més precisa en temps real. Així doncs, aquí el valor dels multiplicadors és de 6,46 i 0,239. Per tant, el codi es veu a continuació
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5.0 / 1023.0) * 6,46; Valor_actual = Valor_actual * (5,0 / 1023,0) * 0,239;
Com es mesura amb més precisió?
La forma anterior de calcular el valor de la tensió real i el corrent funcionarà bé. Però pateix un inconvenient, és a dir, la relació entre la tensió ADC mesurada i la tensió real no serà lineal, per tant, un únic multiplicador no donarà resultats molt precisos, el mateix que s'aplica també per al corrent.
Així, per millorar la precisió podem traçar un conjunt de valors ADC mesurats amb valors reals utilitzant un conjunt de valors conegut i, a continuació, utilitzar aquestes dades per traçar un gràfic i obtenir l’equació multiplicadora mitjançant el mètode de regressió lineal. Podeu referir-vos al mesurador Arduino dB en què he utilitzat un mètode similar.
Finalment, un cop calculat el valor de la tensió real i el corrent real a través de la càrrega, podem calcular la potència mitjançant les fórmules (P = V * I). A continuació, mostrem els tres valors a la pantalla LCD mitjançant el codi següent.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Valor_actual); float Power_Value = Voltage_Value * Valor_actual; lcd.setCursor (0, 1); lcd.print ("Potència ="); lcd.print (Power_Value);
Treball i proves
Per motius de tutorial, he utilitzat una placa perf per soldar tots els components tal com es mostra al circuit. He utilitzat un terminal de cargol Phoenix per connectar la càrrega i una presa de barril de CC normal per connectar la meva font d'alimentació. La placa Arduino Nano i la pantalla LCD es munten en un Bergstik femella perquè es puguin tornar a utilitzar si és necessari més endavant.
Després de preparar el maquinari, pengeu el codi Arduino a la vostra placa Nano. Ajusteu el pot de tall per controlar el nivell de contrast de la pantalla LCD fins que vegeu un text d'introducció clar. Per provar la placa, connecteu la càrrega al connector del terminal de cargol i la font al jack Barrel. El voltatge de la font hauria de ser superior a 6 V perquè aquest projecte funcioni, ja que l’Arduino necessitava + 5 V per funcionar. Si tot funciona bé, hauríeu de veure el valor de la tensió a través de la càrrega i el corrent que es mostra a la primera línia de la pantalla LCD i la potència calculada que es mostra a la segona línia de la pantalla LCD, tal com es mostra a continuació.

La part divertida de construir alguna cosa rau en provar-lo per comprovar fins a quin punt funcionarà correctament. Per fer-ho, he utilitzat bombes indicadores d’automòbils de 12V com a càrrega i el RPS com a font. Com que el propi RPS pot mesurar i mostrar el valor de corrent i tensió, ens serà fàcil comprovar la precisió i el rendiment del nostre circuit. I sí, també he utilitzat el meu RPS per calibrar el meu valor multiplicador de manera que m’acosti al valor precís.
El treball complet es pot trobar al vídeo que apareix al final d’aquesta pàgina. Espero que hagueu entès el circuit i el programa i hàgiu après alguna cosa útil. Si teniu algun problema per aconseguir que això funcioni, publiqueu-lo a la secció de comentaris de sota o escriviu als nostres fòrums per obtenir ajuda tècnica.
Aquest projecte de Wattmeter basat en Arduino té moltes actualitzacions més que es poden afegir per augmentar el rendiment del registre automàtic de dades, traçar gràfics, notificar sobre tensions o situacions de corrent, etc.
