Stellen Sie dieses erweiterte digitale Amperemeter mit Arduino her

Stellen Sie dieses erweiterte digitale Amperemeter mit Arduino her

In diesem Beitrag werden wir ein digitales Amperemeter mit 16 x 2 LCD-Display und Arduino bauen. Wir werden die Methode zur Strommessung mit einem Shunt-Widerstand verstehen und ein auf Arduino basierendes Design implementieren. Das vorgeschlagene digitale Amperemeter kann Strom im Bereich von 0 bis 2 Ampere (absolutes Maximum) mit angemessener Genauigkeit messen.

Wie Amperemeter funktionieren

Es gibt zwei Arten von Amperemeter: Analog und Digital, ihre Funktionsweise unterscheidet sich stark voneinander. Beide haben jedoch ein Konzept gemeinsam: einen Shunt-Widerstand.



Ein Nebenschlusswiderstand ist ein Widerstand mit einem sehr kleinen Widerstand, der beim Messen des Stroms zwischen der Quelle und der Last angeordnet wird.



Lassen Sie uns sehen, wie ein analoges Amperemeter funktioniert, und dann wird es einfacher sein, das digitale zu verstehen.

wie ein analoges Amperemeter funktioniert

Ein Shunt-Widerstand mit sehr niedrigem Widerstand R und der Annahme, dass ein analoges Messgerät an den Widerstand angeschlossen ist, dessen Auslenkung direkt proportional zur Spannung durch das analoge Messgerät ist.



Lassen Sie uns nun etwas Strom von der linken Seite leiten. i1 ist der Strom vor dem Eintritt in den Nebenschlusswiderstand R und i2 ist der Strom nach dem Durchgang durch den Nebenschlusswiderstand.

Der Strom i1 ist größer als i2, da er einen Bruchteil des Stroms durch den Nebenschlusswiderstand abfällt. Die Stromdifferenz zwischen dem Nebenschlusswiderstand entwickelt an V1 und V2 eine sehr geringe Spannung.
Die Spannungsmenge wird von diesem analogen Messgerät gemessen.

Die am Shunt-Widerstand entstehende Spannung hängt von zwei Faktoren ab: dem durch den Shunt-Widerstand fließenden Strom und dem Wert des Shunt-Widerstands.



Wenn der Stromfluss durch den Shunt größer ist, ist die entwickelte Spannung größer. Wenn der Wert des Shunts hoch ist, ist die am Shunt entwickelte Spannung höher.

Der Nebenschlusswiderstand muss einen sehr kleinen Wert haben und eine höhere Nennleistung aufweisen.

Ein kleiner Widerstand sorgt dafür, dass die Last für den normalen Betrieb ausreichend Strom und Spannung erhält.

Außerdem muss der Nebenschlusswiderstand eine höhere Leistung haben, damit er die höhere Temperatur beim Messen des Stroms tolerieren kann. Je höher der Strom durch den Shunt, desto mehr Wärme wird erzeugt.

Inzwischen hätten Sie die Grundidee, wie ein analoges Messgerät funktioniert. Kommen wir nun zum digitalen Design.

Inzwischen wissen wir, dass ein Widerstand eine Spannung erzeugt, wenn ein Strom fließt. Aus dem Diagramm V1 und V2 sind die Punkte hervor, an denen wir die Spannungsproben zum Mikrocontroller bringen.

Berechnung der Spannungs-Strom-Umwandlung

Schauen wir uns nun die einfache Mathematik an, wie wir die erzeugte Spannung in Strom umwandeln können.

Das Ohmsche Gesetz: I = V / R.

Wir kennen den Wert des Shunt-Widerstands R und er wird in das Programm eingegeben.

Die am Shunt-Widerstand erzeugte Spannung beträgt:

V = V1 - V2

Oder

V = V2 - V1 (um ein negatives Symbol während der Messung zu vermeiden, und auch ein negatives Symbol hängen von der Richtung des Stromflusses ab)

So können wir die Gleichung vereinfachen,

I = (V1 - V2) / R.
Oder
I = (V2 - V1) / R.

Eine der obigen Gleichungen wird in den Code eingegeben und wir können den aktuellen Fluss finden und werden auf dem LCD angezeigt.

Lassen Sie uns nun sehen, wie Sie den Shunt-Widerstandswert auswählen.

Der Arduino verfügt über einen eingebauten 10-Bit-Analog-Digital-Wandler (ADC). Es kann 0 bis 5 V in Schritten von 0 bis 1024 oder Spannungspegeln erkennen.

Die Auflösung dieses ADC beträgt also 5/1024 = 0,00488 Volt oder 4,88 Millivolt pro Schritt.

Also 4,88 Millivolt / 2 mA (minimale Auflösung des Amperemeter) = 2,44 oder 2,5 Ohm Widerstand.

Wir können vier 10 Ohm, 2 Watt Widerstand parallel verwenden, um 2,5 Ohm zu erhalten, was im Prototyp getestet wurde.

Wie können wir also den maximal messbaren Bereich des vorgeschlagenen Amperemeter sagen, der 2 Ampere beträgt?

Der ADC kann nur 0 bis 5 V messen, d.h. Alles oben Genannte beschädigt den ADC im Mikrocontroller.

Aus dem getesteten Prototyp haben wir beobachtet, dass an den beiden analogen Eingängen von Punkt V1 und V2, wenn der aktuelle Messwert X mA ist, die analoge Spannung X / 2 anzeigt (im seriellen Monitor).

Wenn das Amperemeter beispielsweise 500 mA anzeigt, zeigen die analogen Werte auf dem seriellen Monitor 250 Schritte oder Spannungspegel an. Der ADC kann bis zu 1024 Schritte oder maximal 5 V tolerieren. Wenn das Amperemeter also 2000 mA anzeigt, zeigt der serielle Monitor ca. 1000 Schritte an. Das ist in der Nähe von 1024.

Alles über 1024 Spannungspegel beschädigt den ADC in Arduino. Um dies kurz vor 2000 mA zu vermeiden, wird auf dem LCD eine Warnmeldung angezeigt, die besagt, dass der Stromkreis getrennt werden soll.

Inzwischen hätten Sie verstanden, wie das vorgeschlagene Amperemeter funktioniert.

Kommen wir nun zu den Konstruktionsdetails.

Schematische Darstellung:

Arduino DC Digital Amperemeter

Die vorgeschlagene Schaltung ist sehr einfach und anfängerfreundlich. Konstruieren Sie gemäß Schaltplan. Stellen Sie das 10K-Potentiometer ein, um den Kontrast der Anzeige anzupassen.

Sie können den Arduino über USB oder über eine DC-Buchse mit 9-V-Batterien mit Strom versorgen. Vier 2-Watt-Widerstände leiten die Wärme gleichmäßig ab als ein 2,5-Ohm-Widerstand mit 8-10-Watt-Widerstand.

Wenn kein Strom fließt, zeigt das Display möglicherweise einen kleinen Zufallswert an, den Sie möglicherweise ignorieren. Dies kann an einer Streuspannung an den Messklemmen liegen.

HINWEIS: Die Polarität der Eingangslastversorgung nicht umkehren.

Programmcode:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int AnalogValue = 0
int PeakVoltage = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
unsigned long sample = 0
int threshold = 1000
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
}
void loop()
{
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_1)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A0 = PeakVoltage * Resolution
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_2)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('DIGITAL AMMETER')
lcd.setCursor(0,1)
lcd.print(output)
lcd.print(' mA')
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_A0))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_A1))
Serial.println('------------------------------')
delay(1000)
}
//------------------Program Developed by R.GIRISH------------------//

Wenn Sie spezielle Fragen zu diesem Projekt für digitale Amperemeter auf Arduino-Basis haben, geben Sie diese bitte im Kommentarbereich an. Möglicherweise erhalten Sie eine schnelle Antwort.




Zurück: Verwenden des digitalen Potentiometers MCP41xx mit Arduino Weiter: Überstrom-Abschaltnetzteil mit Arduino