INHOUDSOPGAWE:

DIY kragmetingsmodule vir Arduino: 9 stappe (met foto's)
DIY kragmetingsmodule vir Arduino: 9 stappe (met foto's)

Video: DIY kragmetingsmodule vir Arduino: 9 stappe (met foto's)

Video: DIY kragmetingsmodule vir Arduino: 9 stappe (met foto's)
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Julie
Anonim
DIY kragmetingsmodule vir Arduino
DIY kragmetingsmodule vir Arduino
DIY kragmetingsmodule vir Arduino
DIY kragmetingsmodule vir Arduino
DIY kragmetingsmodule vir Arduino
DIY kragmetingsmodule vir Arduino

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

Versameling van die vereiste komponente
Versameling van 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 werkbeginsel
Die werkbeginsel
Die werkbeginsel
Die werkbeginsel
Die werkbeginsel
Die werkbeginsel
Die werkbeginsel
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

Om die dele bymekaar te bring
Om die dele bymekaar te bring
Om die dele bymekaar te bring
Om die dele bymekaar te bring
Om die dele bymekaar te bring
Om die dele bymekaar te bring

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

Voeg die onderdele by die Voltage Sense -netwerk
Voeg die onderdele by die Voltage Sense -netwerk
Voeg die onderdele by die Voltage Sense -netwerk
Voeg die onderdele by die Voltage Sense -netwerk
Voeg die onderdele by die Voltage Sense -netwerk
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

Voeg die onderdele by vir die Current Sense -netwerk
Voeg die onderdele by vir die Current Sense -netwerk
Voeg die dele by vir die Current Sense -netwerk
Voeg die dele by vir die Current Sense -netwerk
Voeg die onderdele by vir die Current Sense -netwerk
Voeg die onderdele by vir die Current Sense -netwerk
Voeg die dele by vir die Current Sense -netwerk
Voeg die dele by vir die Current Sense -netwerk

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

Voltooi die oorblywende verbindings en voltooi die gebou
Voltooi die oorblywende verbindings en voltooi die gebou
Voltooi die oorblywende verbindings en voltooi die gebou
Voltooi die oorblywende verbindings en voltooi die gebou
Voltooi die oorblywende verbindings en voltooi die gebou
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

Koppel die module met Arduino
Koppel die module met Arduino
Koppel die module met Arduino
Koppel die module met Arduino
Koppel die module met Arduino
Koppel die module met Arduino
Koppel die module met Arduino
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

Projekkode en kringdiagram
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 ();

}

Aanbeveel: