Sursă de curent de întrerupere a curentului utilizând Arduino

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest post vom construi un eliminator de baterie / sursă de alimentare variabilă DC care va întrerupe automat alimentarea, dacă fluxul de curent prin sarcină depășește nivelul pragului prestabilit.

De Girish Radhakrishanan



Principalele caracteristici tehnice

Circuitul de alimentare cu curent de întrerupere propus care utilizează Arduino are un ecran LCD de 16 X 2, care este utilizat pentru a arăta cazurile tensiunea, curentul, consumul de energie și limita curentului prag stabilit în timp real.

Fiind un pasionat de electronică, ne testăm prototipurile pe o sursă de alimentare cu tensiune variabilă. Cei mai mulți dintre noi dețin o sursă de alimentare variabilă ieftină, care s-ar putea să nu aibă nici caracteristică de măsurare a tensiunii / măsurarea curentului, nici scurtcircuit sau protecție la supracurent încorporată



Acest lucru se datorează faptului că sursa de alimentare cu aceste caracteristici menționate vă poate bombarda pe portofel și va fi suprasolicitată pentru utilizarea hobby-urilor.

Scurtcircuitul și fluxul de curent excesiv este o problemă pentru începători pentru profesioniști, iar începătorii sunt predispuși la acest lucru mai des din cauza inexperienței lor, ar putea inversa polaritatea sursei de alimentare sau conecta componentele în mod greșit etc.

Aceste lucruri pot provoca curentul de curent prin circuit neobișnuit de mare, rezultând în fugă termică în componentele semiconductoare și pasive, ceea ce duce la distrugerea componentelor electronice valoroase. În aceste cazuri legea ohmului se transformă în dușman.

Dacă nu ați făcut niciodată un scurtcircuit sau un circuit prăjit, atunci felicitări! Ești unul dintre puținii oameni care sunt perfecți în electronică sau nu încerci niciodată ceva nou în electronică.

Proiectul de alimentare cu energie electrică propus poate proteja componentele electronice de o astfel de distrugere a prăjirii, care va fi suficient de ieftină pentru un pasionat de electronice obișnuite și suficient de ușor pentru a construi una pentru cei care sunt puțin peste nivelul începătorului.

Design-ul

Sursa de alimentare are 3 potențiometre: unul pentru reglarea contrastului afișajului LCD, unul pentru reglarea tensiunii de ieșire cuprinsă între 1,2 V și 15 V, iar ultimul potențiometru este utilizat pentru setarea limitei de curent cuprinse între 0 și 2000 mA sau 2 Ampere.

Afișajul LCD vă va actualiza cu patru parametri în fiecare secundă: tensiunea, consumul de curent, limita de curent prestabilită și puterea consumată de sarcină.

Consumul de curent prin încărcare va fi afișat în miliamperi, limita de curent prestabilită va fi afișată în miliamperi și consumul de energie va fi afișat în mili-wați.
Circuitul este împărțit în 3 părți: electronica de putere, conexiunea afișajului LCD și circuitul de măsurare a puterii.

Aceste 3 etape pot ajuta cititorii să înțeleagă mai bine circuitul. Acum să vedem secțiunea electronică de putere care controlează tensiunea de ieșire.

Diagramă schematică:

Sursă de curent de întrerupere a curentului utilizând Arduino

Transformatorul 12v-0-12v / 3A va fi utilizat pentru scăderea tensiunii, diodele 6A4 vor converti AC în tensiune continuă și condensatorul 2000uF va netezi alimentarea continuă DC de la diode.

Regulatorul fix de 9V LM 7809 va converti DC-ul nereglementat în sursa de 9V DC reglementată. Sursa de 9V va alimenta Arduino și releu. Încercați să utilizați o mufă DC pentru sursa de intrare arduino.

Nu treceți peste condensatorii ceramici 0.1uF care oferă o stabilitate bună la tensiunea de ieșire.

LM 317 furnizează tensiune de ieșire variabilă pentru sarcina care urmează să fie conectată.

Puteți regla tensiunea de ieșire rotind potențiometrul de 4.7K ohm.

Aceasta încheie secțiunea de putere.

Acum să vedem conexiunea de afișare:

Detalii conexiune

Circuitul de afișare a sursei de alimentare cu supratensiune utilizând Arduino

Nu este nimic de explicat aici, doar conectați ecranul Arduino și LCD conform schemei de circuit. Reglați potențiometrul de 10K pentru un contrast de vizualizare mai bun.

Afișajul de mai sus prezintă mostrele citite pentru cei patru parametri menționați.

Etapa de măsurare a puterii

Acum, să vedem în detaliu circuitul de măsurare a puterii.

Circuitul de măsurare a puterii cuprinde voltmetru și ampermetru. Arduino poate măsura tensiunea și curentul simultan conectând rețeaua de rezistențe conform schemei de circuit.

rețea de rezistență pentru sursa de curent de supratensiune utilizând Arduino

Detalii conexiune releu pentru designul de mai sus:

Detalii conexiune releu Arduino

Cele patru rezistențe de 10 ohmi în paralel, care formează rezistență de șunt de 2,5 ohmi, care vor fi utilizate pentru măsurarea fluxului de curent prin sarcină. Rezistențele ar trebui să aibă cel puțin 2 wați fiecare.

Rezistențele de 10k ohm și 100k ohm ajută Arduino să măsoare tensiunea la sarcină. Aceste rezistențe pot fi una cu o putere nominală normală.

Dacă doriți să aflați mai multe despre funcționarea ampermetrului și voltmetrului pe bază de Arduino, consultați aceste două linkuri:

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

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

Potențiometrul de 10K ohm este prevăzut pentru reglarea nivelului maxim de curent la ieșire. Dacă fluxul de curent prin sarcină depășește curentul prestabilit, alimentarea cu ieșire va fi deconectată.
Puteți vedea nivelul presetat pe afișaj, acesta va fi menționat ca „LT” (Limit).

Spuneți, de exemplu: dacă setați limita ca 200, va da curent până la 199mA. Dacă consumul de curent este egal cu 200 mA sau mai mare, ieșirea va fi imediat întreruptă.

Ieșirea este activată și dezactivată de pinul Arduino # 7. Când acest pin este ridicat, tranzistorul alimentează releul care conectează pinii obișnuiți și normal deschisi, care conduce alimentarea pozitivă a sarcinii.

Dioda IN4007 absoarbe EMF de înaltă tensiune din bobina releului în timp ce pornește și oprește releul.

Codul programului:

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

Până acum, ați fi dobândit suficiente cunoștințe pentru a construi o sursă de alimentare care să vă protejeze componente și module electronice valoroase.

Dacă aveți vreo întrebare specifică cu privire la acest circuit de alimentare cu curent întrerupt, utilizând Arduino, nu ezitați să întrebați în secțiunea de comentarii, este posibil să primiți un răspuns rapid.




Precedent: Faceți acest ampermetru digital avansat folosind Arduino Următorul: Introducere în EEPROM în Arduino