Überstrom-Abschaltnetzteil mit Arduino

Überstrom-Abschaltnetzteil mit Arduino

In diesem Beitrag werden wir eine Batterie-Eliminator / DC-Variable-Stromversorgung konstruieren, die die Versorgung automatisch abschaltet, wenn der Stromfluss durch die Last den voreingestellten Schwellenwert überschreitet.

Von Girish Radhakrishanan



Technische Hauptmerkmale

Die vorgeschlagene Überstrom-Abschalt-Stromversorgungsschaltung unter Verwendung von Arduino verfügt über eine 16 x 2-LCD-Anzeige, die verwendet wird, um die Spannung, den Strom, den Stromverbrauch und die voreingestellte Schwellenstromgrenze in Echtzeit anzuzeigen.



Als Elektronik-Enthusiast testen wir unsere Prototypen an einem Netzteil mit variabler Spannung. Die meisten von uns besitzen ein billiges variables Netzteil, das möglicherweise weder über eine Spannungs- / Strommessfunktion noch über einen Kurzschluss- oder Überstromschutz verfügt.

Dies liegt daran, dass ein Netzteil mit diesen genannten Funktionen Ihre Brieftasche bombardieren kann und für den Hobbygebrauch überfordert ist.



Kurzschluss und Überstromfluss sind ein Problem für Anfänger bis Profis und Anfänger sind aufgrund ihrer Unerfahrenheit häufiger dazu geneigt. Sie können die Polarität des Netzteils umkehren oder die Komponenten falsch anschließen usw.

Diese Dinge können dazu führen, dass der Stromfluss durch die Schaltung ungewöhnlich hoch ist, was zu einem thermischen Durchgehen in Halbleiter- und passiven Komponenten führt, was zur Zerstörung wertvoller elektronischer Komponenten führt. In diesen Fällen wird das Ohmsche Gesetz zum Feind.

Wenn Sie noch nie einen Kurzschluss oder eine frittierte Verbindung gemacht haben, dann herzlichen Glückwunsch! Sie sind einer der wenigen Menschen, die perfekt in der Elektronik sind, oder Sie probieren nie etwas Neues in der Elektronik aus.



Das vorgeschlagene Stromversorgungsprojekt kann die elektronischen Komponenten vor einer solchen Zerstörung durch Braten schützen, was für einen durchschnittlichen Elektronik-Hobbyisten billig genug und für einen leicht über dem Anfängerniveau befindlichen leicht zu konstruieren ist.

Das Design

Das Netzteil verfügt über 3 Potentiometer: eines zum Einstellen des LCD-Displaykontrasts, eines zum Einstellen der Ausgangsspannung von 1,2 V bis 15 V und das letzte Potentiometer zum Einstellen der Strombegrenzung von 0 bis 2000 mA oder 2 Ampere.

Das LCD-Display aktualisiert Sie jede Sekunde mit vier Parametern: Spannung, Stromverbrauch, voreingestellte Stromgrenze und Stromverbrauch der Last.

Der Stromverbrauch über die Last wird in Milliampere angezeigt, die voreingestellte Stromgrenze in Milliampere und der Stromverbrauch in Milliwatt.
Die Schaltung ist in 3 Teile unterteilt: die Leistungselektronik, den LCD-Displayanschluss und die Leistungsmessschaltung.

Diese 3 Stufen können den Lesern helfen, die Schaltung besser zu verstehen. Nun sehen wir uns den Abschnitt Leistungselektronik an, der die Ausgangsspannung steuert.

Schematische Darstellung:

Überstrom-Abschaltnetzteil mit Arduino

Der 12V-0-12V / 3A-Transformator wird zum Verringern der Spannung verwendet, die 6A4-Dioden wandeln den Wechselstrom in Gleichspannung um und der 2000uF-Kondensator glättet die abgehackte Gleichstromversorgung von Dioden.

Der feste 9-V-Regler LM 7809 wandelt den ungeregelten Gleichstrom in einen geregelten 9-V-Gleichstrom um. Die 9-V-Versorgung versorgt den Arduino und das Relais mit Strom. Versuchen Sie, eine DC-Buchse für die Eingangsversorgung von Arduino zu verwenden.

Überspringen Sie nicht die 0,1 uF Keramikkondensatoren, die eine gute Stabilität der Ausgangsspannung bieten.

Der LM 317 liefert eine variable Ausgangsspannung für die Last, die angeschlossen werden soll.

Sie können die Ausgangsspannung einstellen, indem Sie das 4,7-K-Ohm-Potentiometer drehen.

Damit ist der Leistungsteil abgeschlossen.

Nun sehen wir uns die Displayverbindung an:

Verbindungsdetails

Überstrom-Abschalt-Stromversorgungs-Anzeigeschaltung unter Verwendung von Arduino

Hier gibt es nicht viel zu erklären, verdrahten Sie einfach das Arduino- und LCD-Display gemäß Schaltplan. Stellen Sie das 10K-Potentiometer für einen besseren Betrachtungskontrast ein.

Die obige Anzeige zeigt die Beispielwerte für die vier genannten Parameter.

Leistungsmessstufe

Lassen Sie uns nun die Leistungsmessschaltung im Detail betrachten.

Der Leistungsmesskreis besteht aus Voltmeter und Amperemeter. Der Arduino kann Spannung und Strom gleichzeitig messen, indem er das Widerstandsnetzwerk gemäß Schaltplan anschließt.

Widerstandsnetzwerk für Überstrom-Abschaltstromversorgung mit Arduino

Details zur Relaisverbindung für das obige Design:

Verbindungsdetails zum Arduino-Relais

Die vier parallelen 10-Ohm-Widerstände bilden einen 2,5-Ohm-Nebenschlusswiderstand, der zur Messung des Stromflusses durch die Last verwendet wird. Die Widerstände sollten jeweils mindestens 2 Watt betragen.

Die Widerstände von 10 kOhm und 100 kOhm helfen dem Arduino, die Spannung an der Last zu messen. Dieser Widerstand kann einer mit normaler Wattzahl sein.

Wenn Sie mehr über die Funktionsweise von Amperemeter und Voltmeter auf Arduino-Basis erfahren möchten, sehen Sie sich diese beiden Links an:

Voltmeter: https://homemade-circuits.com/2016/09/how-to-make-dc-voltmeter-using-arduino.html

Amperemeter: https://homemade-circuits.com/2017/08/arduino-dc-digital-ammeter.html

Das 10K-Ohm-Potentiometer dient zum Einstellen des maximalen Strompegels am Ausgang. Wenn der Stromfluss durch die Last den voreingestellten Strom überschreitet, wird die Ausgangsversorgung unterbrochen.
Sie können den voreingestellten Pegel im Display sehen, der als „LT“ (Limit) bezeichnet wird.

Sagen Sie zum Beispiel: Wenn Sie den Grenzwert auf 200 einstellen, wird Strom bis 199 mA ausgegeben. Wenn die Stromaufnahme 200 mA oder mehr beträgt, wird der Ausgang sofort abgeschaltet.

Der Ausgang wird über den Arduino-Pin Nr. 7 ein- und ausgeschaltet. Wenn dieser Pin hoch ist, zieht der Transistor das Relais an, das die gemeinsamen und normalerweise offenen Pins verbindet und die positive Versorgung für die Last leitet.

Die Diode IN4007 absorbiert die Hochspannungs-Gegen-EMK von der Relaisspule, während das Relais ein- und ausgeschaltet wird.

Programmcode:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
#define input_3 A2
#define pot A3
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int Pout = 7
int AnalogValue = 0
int potValue = 0
int PeakVoltage = 0
int value = 0
int power = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
float vout = 0.0
float vin = 0.0
float R1 = 100000
float R2 = 10000
unsigned long sample = 0
int threshold = 0
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
pinMode(input_3, INPUT)
pinMode(Pout, OUTPUT)
pinMode(pot, INPUT)
digitalWrite(Pout, HIGH)
}
void loop()
{
PeakVoltage = 0
value = analogRead(input_3)
vout = (value * 5.0) / 1024
vin = vout / (R2/(R1+R2))
if (vin <0.10)
{
vin = 0.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)
}
}
potValue = analogRead(pot)
threshold = map(potValue, 0, 1023, 0, 2000)
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
power = output * vin
while(output >= threshold || analogRead(input_1) >= 1010)
{
digitalWrite(Pout, LOW)
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Power Supply is')
lcd.setCursor(0,1)
lcd.print('Disconnected.')
delay(1500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Press Reset the')
lcd.setCursor(0,1)
lcd.print('Button.')
delay(1500)
}
}
while(output >= threshold || analogRead(input_2) >= 1010)
{
digitalWrite(Pout, LOW)
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Power Supply is')
lcd.setCursor(0,1)
lcd.print('Disconnected.')
delay(1500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Press Reset the')
lcd.setCursor(0,1)
lcd.print('Button.')
delay(1500)
}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('V=')
lcd.print(vin)
lcd.setCursor(9,0)
lcd.print('LT=')
lcd.print(threshold)
lcd.setCursor(0,1)
lcd.print('I=')
lcd.print(output)
lcd.setCursor(9,1)
lcd.print('P=')
lcd.print(power)
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_1))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_2))
Serial.print('Voltage Level at A2 = ')
Serial.println(analogRead(input_3))
Serial.println('------------------------------')
}

//------------------Program Developed by R.GIRISH------------------//

Inzwischen hätten Sie genug Wissen erworben, um ein Netzteil zu bauen, das Sie vor wertvollen elektronischen Bauteilen und Modulen schützt.

Wenn Sie spezielle Fragen zu diesem Überstrom-Stromversorgungskreis mit Arduino haben, können Sie diese gerne im Kommentarbereich stellen. Möglicherweise erhalten Sie eine schnelle Antwort.




Zurück: Stellen Sie dieses erweiterte digitale Amperemeter mit Arduino her Weiter: Einführung in das EEPROM in Arduino