Nadmierne odcięcie zasilania za pomocą Arduino

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym poście skonstruujemy eliminator baterii / zmienny zasilacz DC, który automatycznie odetnie zasilanie, jeśli prąd przepływający przez obciążenie przekroczy ustawiony poziom progowy.

Girish Radhakrishanan



Główne cechy techniczne

Proponowany obwód zasilania z odcięciem nadprądowym wykorzystujący Arduino posiada wyświetlacz LCD 16 x 2, który służy do wyświetlania w czasie rzeczywistym wartości napięcia, prądu, poboru mocy oraz zadanego progu prądu granicznego.

Będąc entuzjastą elektroniki, testujemy nasze prototypy na zasilaczu o zmiennym napięciu. Większość z nas posiada tani zasilacz zmienny, który może nie mieć ani funkcji pomiaru napięcia / prądu, ani wbudowanego zabezpieczenia przed zwarciem lub przetężeniem.



Dzieje się tak, ponieważ zasilacz z tymi wymienionymi funkcjami może zbombardować twój portfel i będzie nadmiernie obciążony do użytku hobbystycznego.

Zwarcie i przepływ prądu jest problemem zarówno dla początkujących, jak i dla profesjonalistów, a początkujący są na to częściej narażeni z powodu braku doświadczenia, mogą odwrócić polaryzację zasilacza lub podłączyć komponenty w niewłaściwy sposób itp.

Te rzeczy mogą powodować niezwykle wysoki przepływ prądu przez obwód, powodując niekontrolowany wzrost temperatury w elementach półprzewodnikowych i pasywnych, co skutkuje zniszczeniem cennych elementów elektronicznych. W takich przypadkach prawo Ohma zamienia się we wroga.

Jeśli nigdy nie zrobiłeś zwarcia lub smażonego obwodu, gratulacje! Jesteś jedną z nielicznych osób, które są doskonałe w elektronice lub nigdy nie próbujesz czegoś nowego w elektronice.

Proponowany projekt zasilania może zabezpieczyć elementy elektroniczne przed takim zniszczeniem podczas smażenia, co będzie wystarczająco tanie dla przeciętnego hobbysty elektronika i dość łatwe do zbudowania dla osoby nieco powyżej poziomu początkującego.

Projektowanie

Zasilacz posiada 3 potencjometry: jeden do regulacji kontrastu wyświetlacza LCD, jeden do regulacji napięcia wyjściowego w zakresie od 1,2 V do 15 V, a ostatni potencjometr służy do ustawiania ograniczenia prądu w zakresie od 0 do 2000 mA lub 2 Amperów.

Wyświetlacz LCD co sekundę będzie aktualizował cztery parametry: napięcie, pobór prądu, ustawiony limit prądu i pobór mocy przez obciążenie.

Pobór prądu przez obciążenie będzie wyświetlany w miliamperach, wstępnie ustawiony limit prądu będzie wyświetlany w miliamperach, a pobór mocy będzie wyświetlany w miliamperach.
Obwód podzielony jest na 3 części: elektronikę mocy, złącze wyświetlacza LCD i obwód pomiaru mocy.

Te 3 etapy mogą pomóc czytelnikom lepiej zrozumieć obwód. Teraz zobaczmy sekcję elektroniki mocy, która kontroluje napięcie wyjściowe.

Schemat:

Nadmierne odcięcie zasilania za pomocą Arduino

Transformator 12v-0-12v / 3A zostanie wykorzystany do obniżenia napięcia, diody 6A4 zamieni prąd zmienny na napięcie stałe, a kondensator 2000uF wygładzi niestabilne zasilanie DC z diod.

Stały regulator LM 7809 9 V przekształci nieregulowane zasilanie DC na regulowane zasilanie 9 V DC. Zasilacz 9V będzie zasilał Arduino i przekaźnik. Spróbuj użyć gniazda DC do zasilania wejściowego arduino.

Nie pomijaj tych kondensatorów ceramicznych 0,1 uF, które zapewniają dobrą stabilność napięcia wyjściowego.

LM 317 zapewnia zmienne napięcie wyjściowe dla obciążenia, które ma być podłączone.

Możesz wyregulować napięcie wyjściowe, obracając potencjometr 4,7 kΩ.

Na tym kończy się sekcja mocy.

Zobaczmy teraz połączenie wyświetlacza:

Szczegóły połączenia

Obwód wyświetlacza zasilacza odcięcia prądu za pomocą Arduino

Nie ma tu nic do wyjaśnienia, po prostu podłącz Arduino i wyświetlacz LCD zgodnie ze schematem obwodu. Dostosuj potencjometr 10K, aby uzyskać lepszy kontrast widzenia.

Powyższy ekran pokazuje przykładowe odczyty dla czterech wymienionych parametrów.

Etap pomiaru mocy

Przyjrzyjmy się teraz szczegółowo obwodowi pomiaru mocy.

Obwód pomiaru mocy składa się z woltomierza i amperomierza. Arduino może jednocześnie mierzyć napięcie i prąd, podłączając sieć rezystorów zgodnie ze schematem obwodu.

sieć rezystorów do zasilania z odcięciem prądu za pomocą Arduino

Szczegóły połączenia przekaźnika dla powyższego projektu:

Szczegóły połączenia przekaźnika Arduino

Cztery 10-omowe rezystory równoległe, które tworzą 2,5-omowy rezystor bocznikowy, który będzie używany do pomiaru przepływu prądu przez obciążenie. Każdy rezystor powinien mieć co najmniej 2 waty.

Rezystory 10 kiloomów i 100 kiloomów pomagają Arduino mierzyć napięcie przy obciążeniu. Te rezystory mogą być rezystorami o normalnej mocy znamionowej.

Jeśli chcesz dowiedzieć się więcej o działaniu amperomierza i woltomierza opartego na Arduino, sprawdź te dwa łącza:

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

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

Potencjometr 10 kiloomów służy do regulacji maksymalnego poziomu prądu na wyjściu. Jeżeli prąd przepływający przez obciążenie przekroczy nastawiony prąd, zasilanie na wyjściu zostanie odłączone.
Możesz zobaczyć ustawiony poziom na wyświetlaczu, będzie on oznaczony jako „LT” (Limit).

Powiedz na przykład: jeśli ustawisz limit na 200, będzie on dawał prąd do 199 mA. Jeśli pobór prądu osiągnie 200 mA lub więcej, wyjście zostanie natychmiast odcięte.

Wyjście jest włączane i wyłączane przez pin # 7 Arduino. Gdy ten pin jest wysoki, tranzystor zasila przekaźnik, który łączy wspólne i normalnie otwarte szpilki, które przewodzą dodatnie zasilanie dla obciążenia.

Dioda IN4007 absorbuje wysokie napięcie z powrotem EMF z cewki przekaźnika podczas włączania i wyłączania przekaźnika.

Kod programu:

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

Do tej pory zdobyłeś wystarczającą wiedzę, aby skonstruować zasilacz, który chroni cenne komponenty i moduły elektroniczne.

Jeśli masz jakieś konkretne pytanie dotyczące tego obwodu zasilania z odcięciem prądu za pomocą Arduino, możesz zapytać w sekcji komentarzy, możesz otrzymać szybką odpowiedź.




Poprzedni: Zrób ten zaawansowany cyfrowy amperomierz za pomocą Arduino Dalej: Wprowadzenie do EEPROM w Arduino