- Erforderliche Materialien
- Schaltplan
- Maßeinheit
- Berechnungs- und Anzeigeeinheit
- Arduino programmieren
- Wie kann man genauer messen?
- Arbeiten und Testen
Als Elektronikingenieure sind wir immer auf Messgeräte / Instrumente angewiesen, um die Funktionsweise eines Schaltkreises zu messen und zu analysieren. Angefangen von einem einfachen Multimeter bis hin zu komplexen Analysatoren oder DSOs für die Stromqualität hat alles seine eigenen einzigartigen Anwendungen. Die meisten dieser Messgeräte sind leicht verfügbar und können basierend auf den zu messenden Parametern und ihrer Genauigkeit erworben werden. Aber manchmal geraten wir in eine Situation, in der wir unsere eigenen Zähler bauen müssen. Angenommen, Sie arbeiten an einem Solar-PV-Projekt und möchten den Stromverbrauch Ihrer Last berechnen. In solchen Szenarien können wir unser eigenes Wattmeter mithilfe einer einfachen Mikrocontroller-Plattform wie Arduino bauen.
Der Bau eigener Zähler senkt nicht nur die Testkosten, sondern gibt uns auch Raum, um den Testprozess zu vereinfachen. Ein mit Arduino gebautes Wattmeter kann einfach angepasst werden, um die Ergebnisse auf dem seriellen Monitor zu überwachen und ein Diagramm auf dem seriellen Plotter zu zeichnen, oder eine SD-Karte hinzuzufügen, um die Werte von Spannung, Strom und Leistung in vordefinierten Intervallen automatisch zu protokollieren. Klingt interessant, oder? Also lasst uns anfangen…
Erforderliche Materialien
- Arduino Nano
- LM358 Operationsverstärker
- 7805 Spannungsregler
- 16 * 2 LCD-Anzeige
- 0,22 Ohm 2 Watt Shunt-Widerstand
- 10k Trimmer Topf
- 10k, 20k, 2,2k, 1k Widerstände
- 0,1 uF Kondensatoren
- Testlast
- Perf Board oder Steckbrett
- Lötkit (optional)
Schaltplan
Das vollständige Schaltbild des Arduino-Wattmeter-Projekts ist unten angegeben.
Zum besseren Verständnis ist die Arduino-Wattmeter-Schaltung in zwei Einheiten unterteilt. Der obere Teil der Schaltung ist die Maßeinheit und der untere Teil der Schaltung ist die Berechnungs- und Anzeigeeinheit. Für Leute, die neu in dieser Art von Schaltkreisen sind, folgten die Etiketten. Beispiel + 5V ist Etikett, was bedeutet, dass alle Stifte, mit denen das Etikett verbunden ist, berücksichtigt werden sollten, wenn sie miteinander verbunden sind. Beschriftungen werden normalerweise verwendet, um den Schaltplan ordentlich aussehen zu lassen.
Die Schaltung ist für Systeme zwischen 0 und 24 V mit einem Strombereich von 0 bis 1 A ausgelegt, wobei die Spezifikation einer Solar-PV zu berücksichtigen ist. Sie können die Reichweite jedoch problemlos erweitern, sobald Sie die Funktionsweise der Schaltung verstanden haben. Das zugrunde liegende Prinzip der Schaltung besteht darin, die Spannung über der Last und den Strom durch sie zu messen, um den Stromverbrauch zu berechnen. Alle gemessenen Werte werden in einem alphanumerischen 16 * 2-LCD angezeigt.
Weiter unten teilen wir die Schaltung in kleine Segmente auf, damit wir ein klares Bild davon erhalten, wie die Schaltung eingerückt ist, um zu funktionieren.
Maßeinheit
Die Messeinheit besteht aus einem Potentialteiler zur Messung der Spannung und einem geschlossenen Widerstand mit einem nichtinvertierenden Operationsverstärker zur Messung des Stroms durch den Stromkreis. Der Potentialteilerteil aus der obigen Schaltung ist unten gezeigt
Hier wird die Eingangsspannung durch Vcc dargestellt, wie bereits erwähnt, entwerfen wir die Schaltung für einen Spannungsbereich von 0 V bis 24 V. Ein Mikrocontroller wie Arduino kann jedoch keine so hohen Spannungswerte messen. Es kann nur eine Spannung von 0-5 V messen. Wir müssen also den Spannungsbereich von 0-24 V auf 0-5 V abbilden (umwandeln). Dies kann leicht durchgeführt werden, indem eine Potentialteilerschaltung verwendet wird, wie unten gezeigt. Der Widerstand 10k und 2,2k bilden zusammen die Potentialteilerschaltung. Die Ausgangsspannung eines Potentialteilers kann unter Verwendung der folgenden Formeln berechnet werden. Um den Wert Ihrer Widerstände zu bestimmen, können Sie unseren Online-Rechner verwenden, um den Wert des Widerstands zu berechnen, wenn Sie die Schaltung neu entwerfen.
Vout = (Vin × R2) / (R1 + R2)
Die abgebildeten 0-5 V können vom Mittelteil erhalten werden, der als Spannung bezeichnet ist. Diese abgebildete Spannung kann dann später dem Arduino-Analog-Pin zugeführt werden.
Als nächstes müssen wir den Strom durch die LAST messen. Wie wir wissen, können Mikrocontroller nur analoge Spannungen lesen, daher müssen wir den Wert von Strom irgendwie in Spannung umwandeln. Dies kann durch einfaches Hinzufügen eines Widerstands (Nebenschlusswiderstand) in den Pfad erfolgen, der gemäß dem Ohmschen Gesetz einen Spannungswert über den Pfad abfällt, der proportional zu dem durch ihn fließenden Strom ist. Der Wert dieses Spannungsabfalls ist sehr gering, daher verwenden wir einen Operationsverstärker, um ihn zu verstärken. Die Schaltung dafür ist unten gezeigt
Hier beträgt der Wert des Nebenschlusswiderstands (SR1) 0,22 Ohm. Wie bereits erwähnt, entwerfen wir die Schaltung für 0-1A, sodass wir basierend auf dem Ohmschen Gesetz den Spannungsabfall an diesem Widerstand berechnen können, der bei etwa 0,2 V liegt, wenn maximal 1 A Strom durch die Last fließt. Diese Spannung ist sehr klein, damit ein Mikrocontroller lesen kann. Wir verwenden einen Operationsverstärker im nichtinvertierenden Verstärkermodus, um die Spannung von 0,2 V auf einen höheren Pegel zu erhöhen, damit der Arduino lesen kann.
Der Operationsverstärker im nicht invertierenden Modus ist oben dargestellt. Der Verstärker ist für eine Verstärkung von 21 ausgelegt, so dass 0,2 * 21 = 4,2 V sind. Die Formeln zur Berechnung der Verstärkung des Operationsverstärkers sind unten angegeben. Sie können diesen Online-Verstärkungsrechner auch verwenden, um den Wert Ihres Widerstands zu ermitteln, wenn Sie die Schaltung neu entwerfen.
Verstärkung = Vout / Vin = 1 + (Rf / Rin)
In unserem Fall beträgt der Wert von Rf 20 k und der Wert von Rin 1 k, was einen Gian-Wert von 21 ergibt. Die verstärkte Spannung des Operationsverstärkers wird dann einem RC-Filter mit einem Widerstand von 1 k und einem Kondensator von 0,1 uF bis gegeben Filtern Sie alle gekoppelten Geräusche. Schließlich wird die Spannung dem Arduino-Analogstift zugeführt.
Der letzte Teil, der in der Messeinheit verbleibt, ist der Spannungsreglerteil. Da wir eine variable Eingangsspannung geben, benötigen wir eine geregelte + 5V Spannung, damit der Arduino und der Operationsverstärker arbeiten können. Diese geregelte Spannung wird vom Spannungsregler 7805 bereitgestellt. Am Ausgang wird ein Kondensator hinzugefügt, um das Rauschen zu filtern.
Berechnungs- und Anzeigeeinheit
In der Messeinheit haben wir die Schaltung so konzipiert, dass die Spannungs- und Stromparameter in 0-5 V umgewandelt werden, die den Arduino-Analogstiften zugeführt werden können. In diesem Teil der Schaltung werden wir diese Spannungssignale mit Arduino verbinden und außerdem eine alphanumerische 16 × 2-Anzeige an das Arduino anschließen, damit wir die Ergebnisse anzeigen können. Die Schaltung dafür ist unten gezeigt
Wie Sie sehen können, ist der Spannungsstift mit dem Analogstift A3 und der Stromstift mit dem Analogstift A4 verbunden. Das LCD wird vom + 5V des 7805 mit Strom versorgt und mit den digitalen Pins von Arduino verbunden, um im 4-Bit-Modus zu arbeiten. Wir haben auch ein Potentiometer (10k) verwendet, das an den Con-Pin angeschlossen ist, um den Kontrast des LCD zu variieren.
Arduino programmieren
Nachdem wir die Hardware gut verstanden haben, öffnen wir das Arduino und beginnen mit der Programmierung. Der Code dient dazu, die analoge Spannung an Pin A3 und A4 zu lesen, den Wert für Spannung, Strom und Leistung zu berechnen und schließlich auf dem LCD-Bildschirm anzuzeigen. Das vollständige Programm dazu finden Sie am Ende der Seite, das als solches für die oben beschriebene Hardware verwendet werden kann. Weiterhin wird der Code in kleine Schnipsel aufgeteilt und erklärt.
Wie bei allen Programmen definieren wir zunächst die von uns verwendeten Pins. In unserem Projekt werden der A3- und der A4-Pin zum Messen von Spannung bzw. Strom verwendet, und die digitalen Pins 3,4,8,9,10 und 11 werden zum Verbinden des LCD mit Arduino verwendet
int Read_Voltage = A3; int Read_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Erwähne die Pin-Nummer für die LCD-Verbindung LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Wir haben auch eine Header-Datei namens Flüssigkristall hinzugefügt, um das LCD mit Arduino zu verbinden. Dann initialisieren wir innerhalb der Setup-Funktion das LCD-Display und zeigen einen Intro-Text als „Arduino Wattmeter“ an und warten zwei Sekunden, bevor wir ihn löschen. Der Code dafür ist unten gezeigt.
void setup () { lcd.begin (16, 2); // 16 * 2 LCD lcd.print ("Arduino Wattmeter") initialisieren ; // Intro Message Zeile 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Intro Message Line 2 Delay (2000); lcd.clear (); }}
Innerhalb der Hauptschleifenfunktion verwenden wir die analoge Lesefunktion, um den Spannungswert von Pin A3 und A4 zu lesen. Wie wir wissen, ist der Arduino ADC-Ausgangswert von 0-1203, da er einen 10-Bit-ADC hat. Dieser Wert muss dann in 0-5 V umgewandelt werden, was durch Multiplikation mit (5/1023) erfolgen kann. Andererseits haben wir früher in der Hardware den tatsächlichen Wert der Spannung von 0-24 V auf 0-5 V und den tatsächlichen Wert der Stromform von 0-1A auf 0-5 V abgebildet. Jetzt müssen wir einen Multiplikator verwenden, um diese Werte auf den tatsächlichen Wert zurückzusetzen. Dies kann durch Multiplizieren mit einem Multiplikatorwert erfolgen. Der Wert des Multiplikators kann entweder theoretisch unter Verwendung der im Hardwareabschnitt angegebenen Formeln berechnet werden, oder wenn Sie einen bekannten Satz von Spannungs- und Stromwerten haben, können Sie ihn praktisch berechnen.Ich habe die letztere Option gewählt, weil sie in Echtzeit tendenziell genauer ist. Hier beträgt der Wert der Multiplikatoren also 6,46 und 0,239. Daher sieht der Code wie folgt aus
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5.0 / 1023.0) * 6.46; Current_Value = Current_Value * (5.0 / 1023.0) * 0.239;
Wie kann man genauer messen?
Die obige Methode zur Berechnung des Werts der tatsächlichen Spannung und des tatsächlichen Stroms funktioniert einwandfrei. Ein Nachteil ist jedoch, dass die Beziehung zwischen der gemessenen ADC-Spannung und der tatsächlichen Spannung nicht linear ist und daher ein einzelner Multiplikator keine sehr genauen Ergebnisse liefert, wie dies auch für den Strom gilt.
Um die Genauigkeit zu verbessern, können wir einen Satz gemessener ADC-Werte mit tatsächlichen Werten unter Verwendung eines bekannten Satzes von Werten darstellen und diese Daten dann verwenden, um einen Graphen zu zeichnen und die Multiplikatorgleichung unter Verwendung der linearen Regressionsmethode abzuleiten. Sie können sich auf das Arduino-dB-Messgerät beziehen, bei dem ich eine ähnliche Methode angewendet habe.
Nachdem wir den Wert der tatsächlichen Spannung und des tatsächlichen Stroms durch die Last berechnet haben, können wir die Leistung anhand der Formeln berechnen (P = V * I). Dann zeigen wir alle drei Werte auf dem LCD-Display mit dem folgenden Code an.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); float Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Power ="); lcd.print (Power_Value);
Arbeiten und Testen
Für das Tutorial habe ich eine Perf-Platine verwendet, um alle Komponenten wie in der Schaltung gezeigt zu löten. Ich habe eine Phoenix-Schraubklemme zum Anschließen der Last und eine normale DC-Zylinderbuchse zum Anschließen meiner Stromquelle verwendet. Das Arduino Nano Board und das LCD sind auf einer weiblichen Bergstik montiert, damit sie bei Bedarf später wiederverwendet werden können.
Laden Sie den Arduino-Code auf Ihr Nano-Board hoch, nachdem Sie die Hardware vorbereitet haben. Stellen Sie den Trimmertopf ein, um den Kontrast des LCD zu steuern, bis Sie einen klaren Intro-Text sehen. Um die Platine zu testen, verbinden Sie die Last mit dem Schraubklemmenstecker und die Quelle mit der Fassbuchse. Die Quellenspannung sollte mehr als 6 V betragen, damit dieses Projekt funktioniert, da der Arduino für den Betrieb + 5 V benötigte. WENN alles einwandfrei funktioniert, sollten Sie den Wert der Spannung an der Last und den Strom durch die Last in der ersten Zeile des LCD und die berechnete Leistung in der zweiten Zeile des LCD wie unten gezeigt anzeigen.
Der lustige Teil beim Erstellen von etwas besteht darin, es zu testen, um zu überprüfen, wie weit es ordnungsgemäß funktioniert. Zu diesem Zweck habe ich 12-V-Kfz-Blinker als Last und den RPS als Quelle verwendet. Da der RPS selbst den Wert von Strom und Spannung messen und anzeigen kann, können wir die Genauigkeit und Leistung unserer Schaltung leicht überprüfen. Und ja, ich habe meinen RPS auch verwendet, um meinen Multiplikatorwert so zu kalibrieren, dass ich dem genauen Wert nahe komme.
Die vollständige Arbeit finden Sie im Video am Ende dieser Seite. Ich hoffe, Sie haben die Schaltung und das Programm verstanden und etwas Nützliches gelernt. Wenn Sie Probleme damit haben, dies zum Laufen zu bringen, posten Sie es im Kommentarbereich unten oder schreiben Sie in unsere Foren, um weitere technische Hilfe zu erhalten.
Dieses auf Arduino basierende Wattmeter-Projekt verfügt über viele weitere Upgrades, die hinzugefügt werden können, um die Leistung bei der automatischen Datenerfassung, dem Zeichnen von Diagrammen, der Benachrichtigung über Überspannungs- oder Überstromsituationen usw. zu steigern. Bleiben Sie also neugierig und lassen Sie mich wissen, wofür Sie dies verwenden würden.