Strömförsörjning över strömavbrott med Arduino

Prova Vårt Instrument För Att Eliminera Problem





I det här inlägget ska vi konstruera en batteriliminator / DC-variabel strömförsörjning som automatiskt stänger av matningen, om strömmen genom lasten överstiger den förinställda tröskelnivån.

Av Girish Radhakrishanan



Huvudsakliga tekniska funktioner

Den föreslagna strömförsörjningskretsen med överström med Arduino har 16 X 2 LCD-skärm, som används för att visa fall spänning, ström, strömförbrukning och förinställd tröskelströmgräns i realtid.

Eftersom vi är en elektronikentusiast testar vi våra prototyper på en strömförsörjning med variabel spänning. De flesta av oss äger en billig variabel strömförsörjning som kanske inte har någon inbyggd spänningsmätnings- / strömmätfunktion eller kortslutning eller överströmsskydd.



Det beror på att strömförsörjningen med de nämnda funktionerna kan bombas på din plånbok och kommer att bli överdriven för hobbyanvändning.

Kortslutning och överströmsflöde är ett problem för nybörjare till yrkesverksamma och nybörjare är benägna för detta oftare på grund av deras oerfarenhet, de kan vända strömförsörjningens polaritet eller ansluta komponenterna på fel sätt etc.

Dessa saker kan orsaka strömflödet genom kretsen ovanligt högt, vilket resulterar i termisk utsläpp i halvledare och passiva komponenter vilket resulterar i förstörelse av värdefulla elektroniska komponenter. I dessa fall blir ohms lag till en fiende.

Om du aldrig gjort en kortslutning eller stekt krets, så gratulerar! Du är en av få personer som är perfekta inom elektronik eller aldrig provar något nytt inom elektronik.

Det föreslagna energiförsörjningsprojektet kan skydda de elektroniska komponenterna från sådan stekning, vilket kommer att vara tillräckligt billigt för en genomsnittlig elektronikhobbyist och lätt att konstruera en för vem som är något över nybörjarnivån.

Designen

Strömförsörjningen har tre potentiometrar: en för att justera LCD-skärmens kontrast, en för att justera utspänningen från 1,2 V till 15 V och den sista potentiometern används för att ställa in strömgränsen från 0 till 2000 mA eller 2 Ampere.

LCD-skärmen uppdaterar dig med fyra parametrar varje sekund: spänning, strömförbrukning, förinställd strömgräns och strömförbrukning av lasten.

Strömförbrukningen via belastning kommer att visas i milliamprar, den förinställda strömgränsen kommer att visas i milliampill och strömförbrukningen visas i millivatt.
Kretsen är uppdelad i 3 delar: kraftelektroniken, LCD-anslutningen och mätkretsen.

Dessa tre steg kan hjälpa läsarna att förstå kretsen bättre. Låt oss nu se avsnittet om kraftelektronik som styr utspänningen.

Schematiskt diagram:

Strömförsörjning över strömavbrott med Arduino

Transformatorn 12v-0-12v / 3A kommer att användas för att trappa ner spänningen, 6A4-dioderna omvandlar växelströmmen till likspänning och 2000uF-kondensatorn kommer att utjämna den hackiga likströmsförsörjningen från dioder.

Den fasta 9V-regulatorn LM 7809 omvandlar den oreglerade likströmmen till reglerad 9V likströmsförsörjning. 9V-strömförsörjningen kommer att driva Arduino och relä. Försök använda ett DC-uttag för arduinos ingångsförsörjning.

Hoppa inte över de 0.1uF keramiska kondensatorerna som ger god stabilitet för utspänningen.

LM 317 tillhandahåller variabel utspänning för den belastning som ska anslutas.

Du kan justera utspänningen genom att vrida på 4,7K ohm-potentiometern.

Det avslutar kraftdelen.

Låt oss nu se skärmanslutningen:

Anslutningsdetaljer

Överströmskopplad strömförsörjningsdisplaykrets med Arduino

Det finns inget att förklara här mycket, bara koppla upp Arduino och LCD-skärmen enligt kretsschemat. Justera 10K potentiometern för bättre visningskontrast.

Ovanstående display visar provavläsningarna för de fyra nämnda parametrarna.

Effektmätningsstadium

Nu ska vi se effektmätningskretsen i detalj.

Effektmätningskretsen består av voltmeter och amperemeter. Arduino kan mäta spänning och ström samtidigt genom att ansluta nätverket av motstånd enligt kretsschemat.

motståndsnätverk för överströmskopplad strömförsörjning med Arduino

Reläanslutningsdetaljer för ovanstående design:

Arduino reläanslutningsdetaljer

De fyra 10 ohm motstånden parallellt som bildar 2,5 ohm shuntmotstånd som kommer att användas för att mäta strömflödet genom lasten. Motstånden bör vara minst 2 watt vardera.

Motstånden på 10k ohm och 100k ohm hjälper Arduino att mäta spänningen vid belastningen. Dessa motstånd kan vara ett med normalt wattvärde.

Om du vill veta mer om Arduino-baserad amperemätare och voltmeter, kolla in dessa två länkar:

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

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

Potentiometern på 10K ohm är avsedd för justering av maximal strömnivå vid utgången. Om strömmen genom lasten överstiger den förinställda strömmen kommer utmatningen att kopplas bort.
Du kan se den förinställda nivån i displayen, den kommer att nämnas som “LT” (Limit).

Säg till exempel: om du ställer in gränsen som 200, kommer den att ge ström till 199 mA. Om strömförbrukningen blir lika med 200 mA eller högre kommer utgången att brytas omedelbart.

Utgången slås på och av med Arduino-stift nr 7. När denna stift är hög aktiverar transistorn reläet som ansluter de gemensamma och normalt öppna stiften, vilket leder den positiva matningen för lasten.

Dioden IN4007 absorberar högspänning tillbaka EMF från reläspolen medan reläet slås PÅ och AV.

Programkod:

//------------------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------------------//

Nu skulle du ha fått tillräckligt med kunskap för att bygga en strömförsörjning som skyddar dig värdefulla elektroniska komponenter och moduler.

Om du har några specifika frågor angående detta över strömavbrottets strömförsörjningskrets med hjälp av Arduino är du välkommen att ställa i kommentarsektionen, kan du få ett snabbt svar.




Tidigare: Gör denna avancerade digitala amperemätare med Arduino Nästa: Introduktion till EEPROM i Arduino