INHOUDSOPGAWE:
- Voorrade
- Stap 1: Versamel die vereiste komponente
- Stap 2: Die werkbeginsel
- Stap 3: Bring die onderdele bymekaar
- Stap 4: Voeg die onderdele by die Voltage Sense -netwerk
- Stap 5: Voeg die onderdele vir die Current Sense -netwerk by
- Stap 6: Voltooi die oorblywende verbindings en voltooi die gebou
- Stap 7: Koppel die module met Arduino
- Stap 8: Projekkode en kringdiagram
- Stap 9: Tutoriaalvideo
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hallo almal, ek hoop dit gaan goed met julle! In hierdie instruksies gaan ek jou wys hoe ek hierdie Power meter/ Wattmeter -module gemaak het vir gebruik met 'n Arduino -bord. Hierdie kragmeter kan die krag wat deur die DC -las verbruik word, bereken. Saam met krag kan hierdie module ons ook akkurate metings van spanning en stroom gee. Dit kan maklik lae spanning (ongeveer 2V) en lae strome meet, so laag as 50 mA met 'n fout van nie meer as 20mA. Die akkuraatheid hang af van die keuse van komponente gebaseer op u vereistes.
Voorrade
- IC LM358 dubbele OP-AMP
- 8 -pen IC basis
- Shuntweerstand (8,6 milliOhm in my geval)
- Weerstande: 100K, 10K, 2.2K, 1K (1/2watt)
- Kondensators: 3 * 0.1uF keramiek kapasitors
- Veroboard of zero board
- Skroef terminale
- Soldeerbout en soldeer
- Arduino Uno of enige ander versoenbare bord
- OLED -skerm
- Verbind brooddrade
Stap 1: Versamel die vereiste komponente
Hierdie projek gebruik baie eenvoudig en maklik om komponente te kry: dit bevat weerstande, keramiek -kondensators, operasionele versterker en 'n verboord vir prototipering.
Die keuse en waarde van komponente hang af van die tipe toepassing en die omvang van die krag wat u wil meet.
Stap 2: Die werkbeginsel
Die werking van die kragmodule is gebaseer op twee konsepte van stroombaanteorie en basiese elektrisiteit: die konsep van die spanningsverdeler vir die meting van die insetspanning en die Ohm -wet om die stroom wat deur die stroombaan vloei te bereken. Ons gebruik 'n shuntweerstand om 'n baie klein spanningsval daaroor te skep. Hierdie spanningsval is in verhouding tot die hoeveelheid stroom wat deur die shunt vloei. Hierdie klein spanning, wanneer dit versterk word deur 'n operasionele versterker, kan gebruik word as 'n ingang na 'n mikrokontroleerder wat geprogrammeer kan word om ons die huidige waarde te gee. weerstand R2 en R1. Deur die nie -omkerende konfigurasie te gebruik, kan ons 'n gemeenskaplike basis hê as die meetverwysing. Hiervoor word die stroom aan die onderkant van die stroombaan gemeet. Vir my aansoek het ek 'n wins van 46 gekies deur 100K en 2.2K weerstand as terugvoernetwerk te gebruik. Die spanningsmeting word uitgevoer deur 'n spanningsverdelerkring te gebruik wat die insetspanning in verhouding met die weerstandsnetwerk verdeel.
Beide die huidige waarde van die OP-amp en die spanningswaarde van die verdelersnetwerk kan in twee analoog insette van die arduino ingevoer word, sodat ons die krag wat deur 'n las verbruik word, kan bereken.
Stap 3: Bring die onderdele bymekaar
Laat ons begin met die konstruksie van ons kragmodule deur die posisie van die skroefklemme vir die invoer- en uitsetverbinding te bepaal. Nadat ons die toepaslike posisies gemerk het, soldeer ons die skroefklemme en die shuntweerstand op hul plek.
Stap 4: Voeg die onderdele by die Voltage Sense -netwerk
Vir die inspanning van spanning gebruik ek 'n spanningsverdelersnetwerk van 10K en 1K. Ek het ook 'n 0.1 uF -kondensator bygevoeg oor die 1K -weerstand om die spannings glad te maak.
Stap 5: Voeg die onderdele vir die Current Sense -netwerk by
Die stroom word gemeet deur die spanningsval oor die shuntweerstand te bereken en te versterk met 'n vooraf gedefinieerde versterking wat deur die weerstandsnetwerk gestel word. Nie -omkerende versterkingsmodus word gebruik. Dit is wenslik om die soldeerspore klein te hou om ongewenste spanningsval te voorkom.
Stap 6: Voltooi die oorblywende verbindings en voltooi die gebou
Met die spannings- en stroomgevoernetwerke verbind en gesoldeer, is dit tyd om die manlike koppenne te soldeer en die nodige verbindings tussen krag- en seinuitsette te maak. Die module word aangedryf deur die standaard werkspanning van 5 volt wat ons maklik van 'n arduino -bord kan kry. Die twee spanning -sinuitsette word gekoppel aan die analoog -insette van die arduino.
Stap 7: Koppel die module met Arduino
Aangesien die module voltooi is, is dit uiteindelik tyd om dit aan te sluit met 'n Arduino en dit aan die gang te kry. Om die waardes te sien, het ek 'n OLED -skerm gebruik wat I2C -protokol gebruik het om met die arduino te kommunikeer. Die parameters wat op die skerm verskyn, is spanning, stroom en krag.
Stap 8: Projekkode en kringdiagram
Ek het die stroombaan -diagram en kode van die kragmodule in hierdie stap aangeheg (ek het voorheen die.ino- en.txt -lêer met die kode aangeheg, maar 'n bedienerfout het veroorsaak dat die kode ontoeganklik of onleesbaar was vir gebruikers, so ek het die hele kode in hierdie stap. Ek weet dat dit nie 'n goeie manier is om die kode te deel nie:(). Pas hierdie kode aan volgens u vereistes. Ek hoop dat hierdie projek vir u nuttig was. Deel asseblief u terugvoer in die kommentaar. Cheers!
#insluit
#insluit
#insluit
#insluit
#define OLED_RESET 4 Adafruit_SSD1306 -skerm (OLED_RESET);
float val = 0;
vlotstroom = 0;
vlot spanning = 0;
dryfkrag = 0;
ongeldige opstelling () {
pinMode (A0, INVOER);
pinMode (A1, INVOER);
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // initialiseer met die I2C addr 0x3C (vir die 128x32) display.display ();
vertraging (2000);
// Maak die buffer skoon.
display.clearDisplay ();
display.setTextSize (1);
display.setCursor (0, 0);
display.setTextColor (WIT);
Serial.begin (9600); // Om die waardes op die seriële monitor te sien
}
leemte -lus () {
// neem die gemiddelde vir stabiele metings
vir (int i = 0; i <20; i ++) {
stroom = stroom + analoogLees (A0);
spanning = spanning + analoog Lees (A1); }
stroom = (stroom/20); stroom = stroom * 0,0123 * 5,0; // kalibrasiewaarde, verander volgens die gebruikte komponente
spanning = (spanning/20); spanning = spanning * 0,0508 * 5,0; // kalibrasiewaarde, verander volgens die gebruikte komponente
krag = spanning*stroom;
// die waardes op die seriële monitor druk
Reeks.afdruk (spanning);
Serial.print ("");
Serial.print (huidige);
Serial.print ("");
Serial.println (krag);
// die waardes op die OLED -skerm druk
display.setCursor (0, 0);
display.print ("Spanning:");
vertoon.afdruk (spanning);
display.println ("V");
display.setCursor (0, 10);
display.print ("Current:");
display.print (huidige);
display.println ("A");
display.setCursor (0, 20);
display.print ("Power:");
vertoon.afdruk (krag);
display.println ("W");
vertoon.display ();
vertraging (500); // verversingsnelheid bepaal deur die vertraging
display.clearDisplay ();
}