Indholdsfortegnelse:

DIY Power Measurement Module for Arduino: 9 trin (med billeder)
DIY Power Measurement Module for Arduino: 9 trin (med billeder)

Video: DIY Power Measurement Module for Arduino: 9 trin (med billeder)

Video: DIY Power Measurement Module for Arduino: 9 trin (med billeder)
Video: HW BUILD: DIY RF Power Measurement based on Arduino Nano, AD8318 Sensor and WS2812 LED (EP20) 2024, November
Anonim
DIY Power Measurement Module til Arduino
DIY Power Measurement Module til Arduino
DIY Power Measurement Module til Arduino
DIY Power Measurement Module til Arduino
DIY Power Measurement Module til Arduino
DIY Power Measurement Module til Arduino

Hej alle sammen, jeg håber i har det godt! I denne instruktive vil jeg vise dig, hvordan jeg lavede dette Power meter/ Wattmeter modul til brug med et Arduino board. Denne effektmåler kan beregne strømforbruget af og DC -belastning. Sammen med strøm kan dette modul også give os nøjagtige aflæsninger af spænding og strøm. Det kan let måle lave spændinger (omkring 2V) og lave strømme, så lave som 50 mA med en fejl på ikke mere end 20mA. Nøjagtigheden afhænger af valg af komponenter baseret på dine krav.

Forbrugsvarer

  • IC LM358 dobbelt OP-AMP
  • 8 -benet IC -base
  • Shuntmodstand (8,6 milliOhm i mit tilfælde)
  • Modstande: 100K, 10K, 2.2K, 1K (1/2watt)
  • Kondensatorer: 3 * 0.1uF keramiske kondensatorer
  • Veroboard eller zero board
  • Skrueterminaler
  • Loddejern og loddetin
  • Arduino Uno eller et andet kompatibelt bord
  • OLED Display
  • Tilslutning af brødtråde

Trin 1: Indsamling af de nødvendige komponenter

Indsamling af de nødvendige komponenter
Indsamling af de nødvendige komponenter

Dette projekt bruger meget enkle og let tilgængelige komponenter: de omfatter modstande, keramiske kondensatorer, operationsforstærker og en veroboard til prototyper.

Valg og værdi af komponenter afhænger af applikationstypen og effektområdet, du vil måle.

Trin 2: Arbejdsprincippet

Arbejdsprincippet
Arbejdsprincippet
Arbejdsprincippet
Arbejdsprincippet
Arbejdsprincippet
Arbejdsprincippet
Arbejdsprincippet
Arbejdsprincippet

Effektmodulets arbejde er baseret på to begreber om kredsløbsteori og grundlæggende elektricitet: Spændingsdelerkonceptet til måling af indgangsspændingen og Ohms lov til at beregne strømmen, der strømmer gennem kredsløbet. Vi bruger en shuntmodstand til at skabe et meget lille spændingsfald hen over det. Dette spændingsfald er i forhold til mængden af strøm, der strømmer gennem shunten. Denne lille spænding, når den forstærkes af en operationsforstærker, kan bruges som input til en mikrokontroller, som kan programmeres til at give os den aktuelle værdi. Den operationelle forstærker bruges som en ikke -inverterende forstærker, hvor forstærkningen bestemmes af værdierne for feedback modstand R2 og R1. Brug af den ikke -inverterende konfiguration giver os mulighed for at have en fælles grund som målehenvisning. Til dette måles strømmen på den lave side af kredsløbet. Til min applikation har jeg valgt en gevinst på 46 ved at bruge 100K og 2,2K modstand som feedback -netværk. Spændingsmåling udføres ved hjælp af et spændingsdelerkredsløb, der deler indgangsspændingen i forhold til det anvendte modstandsnetværk.

Både den aktuelle værdi fra OP-forstærkeren og spændingsværdien fra divideringsnetværket kan indføres i to analoge indgange på arduinoen, så vi kan beregne strømforbruget ved en belastning.

Trin 3: At bringe delene sammen

At samle delene
At samle delene
At samle delene
At samle delene
At samle delene
At samle delene

Lad os starte konstruktionen af vores strømmodul ved at bestemme placeringen af skrueterminalerne for ind- og udgangstilslutning. Efter at have markeret de relevante positioner, lodder vi skrueterminalerne og shuntmodstanden på plads.

Trin 4: Tilføjelse af dele til Voltage Sense -netværket

Tilføjelse af delene til spændingsfølelsesnetværket
Tilføjelse af delene til spændingsfølelsesnetværket
Tilføjelse af delene til spændingsfølelsesnetværket
Tilføjelse af delene til spændingsfølelsesnetværket
Tilføjelse af delene til spændingsfølelsesnetværket
Tilføjelse af delene til spændingsfølelsesnetværket

Til indgangsspændingsregistrering bruger jeg et spændingsdelingsnetværk på 10K og 1K. Jeg tilføjede også en 0,1 uF kondensator på tværs af 1K -modstanden for at udjævne spændingerne. Spændingsfølelsesnetværket er loddet nær inputterminalen

Trin 5: Tilføjelse af dele til det aktuelle Sense -netværk

Tilføjelse af dele til det aktuelle Sense -netværk
Tilføjelse af dele til det aktuelle Sense -netværk
Tilføjelse af dele til det aktuelle Sense -netværk
Tilføjelse af dele til det aktuelle Sense -netværk
Tilføjelse af dele til det aktuelle Sense -netværk
Tilføjelse af dele til det aktuelle Sense -netværk
Tilføjelse af dele til det aktuelle Sense -netværk
Tilføjelse af dele til det aktuelle Sense -netværk

Strømmen måles ved at beregne og forstærke spændingsfaldet over shuntmodstanden med en foruddefineret forstærkning indstillet af modstandsnettet. Ikke -omvendt forstærkningstilstand bruges. Det er ønskeligt at holde loddesporene små for at undgå uønsket spændingsfald.

Trin 6: Afslutning af de resterende forbindelser og afslutning af bygningen

Afslutning af de resterende forbindelser og afslutning af bygningen
Afslutning af de resterende forbindelser og afslutning af bygningen
Afslutning af de resterende forbindelser og afslutning af bygningen
Afslutning af de resterende forbindelser og afslutning af bygningen
Afslutning af de resterende forbindelser og afslutning af bygningen
Afslutning af de resterende forbindelser og afslutning af bygningen

Med spændings- og strømfølelsesnetværkerne forbundet og loddet, er det tid til at lodde de mandlige headerstifter og foretage de nødvendige forbindelser mellem strøm og signaludgange. Modulet får strøm fra en standard driftsspænding på 5 volt, som vi let kan få fra et arduino -kort. De to spændingsfølerudgange forbindes til de analoge indgange på arduinoen.

Trin 7: Tilslutning af modulet med Arduino

Tilslutning af modulet med Arduino
Tilslutning af modulet med Arduino
Tilslutning af modulet med Arduino
Tilslutning af modulet med Arduino
Tilslutning af modulet med Arduino
Tilslutning af modulet med Arduino
Tilslutning af modulet med Arduino
Tilslutning af modulet med Arduino

Da modulet er færdigt, er det nu endelig tid til at forbinde det med en Arduino og få det til at køre. For at se værdierne har jeg brugt et OLED -display, der brugte I2C -protokol til at kommunikere med arduinoen. De parametre, der vises på skærmen, er spænding, strøm og effekt.

Trin 8: Projektkode og kredsløbsdiagram

Projektkode og kredsløbsdiagram
Projektkode og kredsløbsdiagram

Jeg har vedhæftet kredsløbsdiagrammet og koden for strømmodulet i dette trin (tidligere havde jeg vedhæftet.ino- og.txt -filen indeholdende koden, men en serverfejl forårsagede, at koden var utilgængelig eller ulæselig for brugerne, så jeg skrev hele kode i dette trin. Jeg ved, at det ikke er en god måde at dele koden på:(). Du er velkommen til at ændre denne kode i henhold til dine krav. Jeg håber, at dette projekt var nyttigt for dig. Del din feedback i kommentarerne. Skål!

#omfatte

#omfatte

#omfatte

#omfatte

#define OLED_RESET 4 Adafruit_SSD1306 display (OLED_RESET);

float val = 0;

flyde strøm = 0;

flydespænding = 0;

flydeeffekt = 0;

ugyldig opsætning () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begynder (SSD1306_SWITCHCAPVCC, 0x3C); // initialiser med I2C addr 0x3C (for 128x32) display.display ();

forsinkelse (2000);

// Ryd bufferen.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (HVID);

Serial.begin (9600); // For at se værdierne på den serielle skærm

}

void loop () {

// tager gennemsnittet for stabile aflæsninger

for (int i = 0; i <20; i ++) {

strøm = strøm + analogRead (A0);

spænding = spænding + analogRead (A1); }

strøm = (strøm/20); strøm = strøm * 0,0123 * 5,0; // kalibreringsværdi, ændres i henhold til anvendte komponenter

spænding = (spænding/20); spænding = spænding * 0,0508 * 5,0; // kalibreringsværdi, ændres i henhold til anvendte komponenter

strøm = spænding*strøm;

// udskrivning af værdierne på den serielle skærm

Seriel.print (spænding);

Serial.print ("");

Serial.print (nuværende);

Serial.print ("");

Serial.println (strøm);

// udskrivning af værdierne på OLED -displayet

display.setCursor (0, 0);

display.print ("Spænding:");

display.print (spænding);

display.println ("V");

display.setCursor (0, 10);

display.print ("Current:");

display.print (nuværende);

display.println ("A");

display.setCursor (0, 20);

display.print ("Strøm:");

display.print (strøm);

display.println ("W");

display.display ();

forsinkelse (500); // opdateringshastighed indstillet af forsinkelsen

display.clearDisplay ();

}

Anbefalede: