Inhaltsverzeichnis:

DIY Leistungsmessmodul für Arduino - Gunook
DIY Leistungsmessmodul für Arduino - Gunook

Video: DIY Leistungsmessmodul für Arduino - Gunook

Video: DIY Leistungsmessmodul für Arduino - Gunook
Video: Turn your Raspberry Pi into a full featured smart meter 2024, November
Anonim
DIY Leistungsmessmodul für Arduino
DIY Leistungsmessmodul für Arduino
DIY Leistungsmessmodul für Arduino
DIY Leistungsmessmodul für Arduino
DIY Leistungsmessmodul für Arduino
DIY Leistungsmessmodul für Arduino

Hallo zusammen, ich hoffe euch geht es gut! In diesem anweisbaren werde ich Ihnen zeigen, wie ich dieses Leistungsmesser / Wattmeter-Modul für die Verwendung mit einem Arduino-Board gemacht habe. Dieser Leistungsmesser kann die von der DC-Last verbrauchte Leistung berechnen. Neben der Leistung kann dieses Modul uns auch genaue Werte von Spannung und Strom liefern. Es kann problemlos niedrige Spannungen (ca. 2 V) und niedrige Ströme bis zu 50 mA mit einem Fehler von nicht mehr als 20 mA messen. Die Genauigkeit hängt von der Wahl der Komponenten nach Ihren Anforderungen ab.

Lieferungen

  • IC LM358 dualer OP-AMP
  • 8-poliger IC-Sockel
  • Shunt-Widerstand (8,6 MilliOhm in meinem Fall)
  • Widerstände: 100K, 10K, 2,2K, 1K (1/2 Watt)
  • Kondensatoren: 3 * 0,1uF Keramikkondensatoren
  • Veroboard oder Zeroboard
  • Schraubklemmen
  • Lötkolben und Lot
  • Arduino Uno oder ein anderes kompatibles Board
  • OLED-Display
  • Steckverbindungsdrähte anschließen

Schritt 1: Sammeln der erforderlichen Komponenten

Sammeln der erforderlichen Komponenten
Sammeln der erforderlichen Komponenten

Dieses Projekt verwendet sehr einfache und leicht zu beschaffende Komponenten: Sie umfassen Widerstände, Keramikkondensatoren, Operationsverstärker und ein Veroboard für das Prototyping.

Die Auswahl und der Wert der Komponenten hängen von der Art der Anwendung und dem Leistungsbereich ab, den Sie messen möchten.

Schritt 2: Das Arbeitsprinzip

Das Arbeitsprinzip
Das Arbeitsprinzip
Das Arbeitsprinzip
Das Arbeitsprinzip
Das Arbeitsprinzip
Das Arbeitsprinzip
Das Arbeitsprinzip
Das Arbeitsprinzip

Die Funktionsweise des Leistungsmoduls basiert auf zwei Konzepten der Schaltungstheorie und der Grundelektrik: Das Spannungsteilerkonzept zur Messung der Eingangsspannung und das Ohmsche Gesetz zur Berechnung des durch den Stromkreis fließenden Stroms. Wir verwenden einen Shunt-Widerstand, um einen sehr kleinen Spannungsabfall darüber zu erzeugen. Dieser Spannungsabfall ist proportional zur Strommenge, die durch den Shunt fließt. Diese kleine Spannung, wenn sie von einem Operationsverstärker verstärkt wird, kann als Eingang für einen Mikrocontroller verwendet werden, der so programmiert werden kann, dass er uns den Stromwert liefert. Der Operationsverstärker wird als nicht invertierender Verstärker verwendet, bei dem die Verstärkung durch die Werte der Rückkopplung bestimmt wird Widerstand R2 und R1. Die Verwendung der nicht invertierenden Konfiguration ermöglicht es uns, eine gemeinsame Masse als Messreferenz zu haben. Dazu wird der Strom auf der Low-Side der Schaltung gemessen. Für meine Anwendung habe ich eine Verstärkung von 46 gewählt, indem ich 100K- und 2,2K-Widerstände als Rückkopplungsnetzwerk verwendet habe. Die Spannungsmessung erfolgt über eine Spannungsteilerschaltung, die die Eingangsspannung proportional zum verwendeten Widerstandsnetzwerk teilt.

Sowohl der Stromwert vom OP-Amp als auch der Spannungswert vom Teilernetzwerk können in zwei analoge Eingänge des Arduino eingespeist werden, damit wir die von einer Last aufgenommene Leistung berechnen können.

Schritt 3: Zusammenbringen der Teile

Die Teile zusammenbringen
Die Teile zusammenbringen
Die Teile zusammenbringen
Die Teile zusammenbringen
Die Teile zusammenbringen
Die Teile zusammenbringen

Beginnen wir mit der Konstruktion unseres Leistungsmoduls, indem wir die Position der Schraubklemmen für den Ein- und Ausgangsanschluss festlegen. Nachdem wir die entsprechenden Positionen markiert haben, verlöten wir die Schraubklemmen und den Shunt-Widerstand.

Schritt 4: Hinzufügen der Teile für das Spannungserfassungsnetzwerk

Hinzufügen der Teile für das Spannungserfassungsnetzwerk
Hinzufügen der Teile für das Spannungserfassungsnetzwerk
Hinzufügen der Teile für das Spannungserfassungsnetzwerk
Hinzufügen der Teile für das Spannungserfassungsnetzwerk
Hinzufügen der Teile für das Spannungserfassungsnetzwerk
Hinzufügen der Teile für das Spannungserfassungsnetzwerk

Für die Eingangsspannungsmessung verwende ich ein Spannungsteilernetzwerk von 10K und 1K. Ich habe auch einen 0,1-uF-Kondensator über den 1K-Widerstand hinzugefügt, um die Spannungen zu glätten. Das Spannungsmessnetzwerk ist in der Nähe des Eingangsanschlusses gelötet

Schritt 5: Hinzufügen der Teile für das Current Sense-Netzwerk

Hinzufügen der Teile für das Current Sense-Netzwerk
Hinzufügen der Teile für das Current Sense-Netzwerk
Hinzufügen der Teile für das Current Sense-Netzwerk
Hinzufügen der Teile für das Current Sense-Netzwerk
Hinzufügen der Teile für das Current Sense-Netzwerk
Hinzufügen der Teile für das Current Sense-Netzwerk
Hinzufügen der Teile für das Current Sense-Netzwerk
Hinzufügen der Teile für das Current Sense-Netzwerk

Der Strom wird gemessen, indem der Spannungsabfall am Shunt-Widerstand berechnet und mit einer vordefinierten Verstärkung, die durch das Widerstandsnetzwerk eingestellt wird, verstärkt wird. Der nicht invertierende Verstärkungsmodus wird verwendet. Es ist wünschenswert, die Lötspuren klein zu halten, um einen unerwünschten Spannungsabfall zu vermeiden.

Schritt 6: Vervollständigen der verbleibenden Verbindungen und Beenden des Builds

Vervollständigen der verbleibenden Verbindungen und Beenden des Builds
Vervollständigen der verbleibenden Verbindungen und Beenden des Builds
Vervollständigen der verbleibenden Verbindungen und Beenden des Builds
Vervollständigen der verbleibenden Verbindungen und Beenden des Builds
Vervollständigen der verbleibenden Verbindungen und Beenden des Builds
Vervollständigen der verbleibenden Verbindungen und Beenden des Builds

Wenn die Spannungs- und Strommessnetzwerke angeschlossen und verlötet sind, ist es an der Zeit, die Stiftleistenstifte zu verlöten und die erforderlichen Verbindungen der Strom- und Signalausgänge herzustellen. Das Modul wird mit der Standardbetriebsspannung von 5 Volt betrieben, die wir problemlos von einem Arduino-Board erhalten können. Die beiden Spannungsmessausgänge werden mit den analogen Eingängen des Arduino verbunden.

Schritt 7: Verbinden des Moduls mit Arduino

Verbinden des Moduls mit Arduino
Verbinden des Moduls mit Arduino
Verbinden des Moduls mit Arduino
Verbinden des Moduls mit Arduino
Verbinden des Moduls mit Arduino
Verbinden des Moduls mit Arduino
Verbinden des Moduls mit Arduino
Verbinden des Moduls mit Arduino

Nachdem das Modul fertig ist, ist es nun endlich an der Zeit, es mit einem Arduino zu verbinden und zum Laufen zu bringen. Um die Werte zu sehen, habe ich ein OLED-Display verwendet, das das I2C-Protokoll verwendet, um mit dem Arduino zu kommunizieren. Die auf dem Bildschirm angezeigten Parameter sind Spannung, Strom und Leistung.

Schritt 8: Projektcode und Schaltplan

Projektcode und Schaltplan
Projektcode und Schaltplan

Ich habe den Schaltplan und den Code des Leistungsmoduls in diesem Schritt angehängt (Zuvor hatte ich die.ino- und.txt-Datei mit dem Code angehängt, aber ein Serverfehler führte dazu, dass der Code für Benutzer unzugänglich oder unlesbar war, also habe ich das gesamte geschrieben Code in diesem Schritt. Ich weiß, dass dies keine gute Möglichkeit ist, den Code zu teilen:(). Fühlen Sie sich frei, diesen Code gemäß Ihren Anforderungen zu ändern. Ich hoffe, dieses Projekt war hilfreich für Sie. Bitte teilen Sie Ihr Feedback in den Kommentaren mit. Prost!

#enthalten

#enthalten

#enthalten

#enthalten

#define OLED_RESET 4 Adafruit_SSD1306-Anzeige (OLED_RESET);

Schwimmerwert = 0;

Schwimmerstrom = 0;

Schwebespannung = 0;

Schwimmerleistung = 0;

Leere Einrichtung () {

PinMode (A0, EINGANG);

PinMode (A1, EINGANG);

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // mit der I2C-Adresse 0x3C (für die 128x32) initialisieren display.display();

Verzögerung (2000);

// Löschen Sie den Puffer.

display.clearDisplay();

display.setTextSize(1);

display.setCursor(0, 0);

display.setTextColor (WEISS);

Serial.begin (9600); // Um die Werte auf dem seriellen Monitor zu sehen

}

Leere Schleife () {

// Mittelwertbildung für stabile Messwerte

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

Strom = Strom + analogRead (A0);

Spannung = Spannung + analogRead (A1); }

aktuell = (aktuell/20); Strom = Strom * 0,0123 * 5,0; // Kalibrierwert, je nach verwendeten Komponenten zu ändern

Spannung = (Spannung/20); Spannung = Spannung * 0,0508 * 5,0; // Kalibrierwert, je nach verwendeten Komponenten zu ändern

Leistung = Spannung * Strom;

// die Werte auf dem seriellen Monitor drucken

Serial.print (Spannung);

Serial.print (" ");

Serial.print (aktuell);

Serial.print (" ");

Serial.println (Leistung);

// Drucken der Werte auf dem OLED-Display

display.setCursor(0, 0);

display.print("Spannung:");

display.print (Spannung);

display.println("V");

display.setCursor(0, 10);

display.print("Aktuell:");

display.print (aktuell);

display.println(" A");

display.setCursor(0, 20);

display.print("Leistung:");

display.print (Leistung);

display.println(" W");

display.display();

Verzögerung (500); // Bildwiederholrate durch die Verzögerung eingestellt

display.clearDisplay();

}

Empfohlen: