Napravite ovaj napredni digitalni ampermetar koristeći Arduino

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo postu izraditi digitalni ampermetar pomoću LCD zaslona 16 x 2 i Arduina. Razumjet ćemo metodologiju mjerenja struje pomoću ranžirnog otpora i implementirati dizajn zasnovan na Arduinu. Predloženi digitalni ampermetar može mjeriti struju u rasponu od 0 do 2 Ampera (apsolutni maksimum) s razumnom točnošću.

Kako ampermetri rade

Postoje dvije vrste ampermetara: analogni i digitalni, koji se međusobno razlikuju. No, obojici je zajednički jedan koncept: ranžirni otpornik.



Manevrski otpornik je otpornik s vrlo malim otporom koji se postavlja između izvora i opterećenja tijekom mjerenja struje.

Pogledajmo kako radi analogni ampermetar i tada će biti lakše razumjeti digitalni.



kako radi analogni ampermetar

Razvodni otpornik s vrlo malim otporom R i pretpostaviti da je neka vrsta analognog mjerača povezan preko otpornika čiji je otklon izravno proporcionalan naponu kroz analogno brojilo.

A sad propustimo neku količinu struje s lijeve strane. i1 je struja prije ulaska u ranžirni otpor R, a i2 će biti struja nakon prolaska kroz ranžirni otpor.

Struja i1 bit će veća od i2 budući da je kroz strujni otpor ispustio djelić struje. Trenutna razlika između ranžirnog otpora razvija vrlo malu količinu napona na V1 i V2.
Količina napona mjerit će se tim analognim mjeračem.

Napon razvijen na ranžirnom otporu ovisi o dva čimbenika: struji koja prolazi kroz ranžirni otpornik i vrijednosti ranžirnog otpora.

Ako je strujni tok veći kroz razvodnik, razvijeni napon je veći. Ako je vrijednost šanta velika, napon razvijen na šantu je veći.

Prolazni otpornik mora biti vrlo male vrijednosti i mora imati veću snagu snage.

Otpor male vrijednosti osigurava da opterećenje dobiva odgovarajuću količinu struje i napona za normalan rad.

Također ranžirni otpornik mora imati veću snagu snage kako bi mogao podnijeti višu temperaturu dok mjeri struju. Što je veća struja kroz šant, više se stvara toplina.

Do sada biste dobili osnovnu ideju kako funkcionira analogno brojilo. Krenimo sada na digitalni dizajn.

Do sada znamo da će otpornik stvarati napon ako postoji strujni tok. Iz dijagrama V1 i V2 nalaze se točke u kojima uzimamo uzorke napona na mikrokontroler.

Izračunavanje pretvorbe napona u struju

Sada da vidimo jednostavnu matematiku, kako možemo pretvoriti proizvedeni napon u struju.

Ohmov zakon: I = V / R

Znamo vrijednost ranžirnog otpora R i on će se unijeti u program.

Napon proizveden na ranžirnom otporu je:

V = V1 - V2

Ili

V = V2 - V1 (kako bi se izbjegao negativni simbol tijekom mjerenja, a također negativni simbol ovisi o smjeru strujanja)

Tako možemo pojednostaviti jednadžbu,

I = (V1 - V2) / R
Ili
I = (V2 - V1) / R

Jedna od gornjih jednadžbi bit će unesena u kod, a mi možemo pronaći trenutni protok i prikazat će se na LCD-u.

Sada da vidimo kako odabrati vrijednost ranžirnog otpora.

Arduino je ugradio 10-bitni analogno-digitalni pretvarač (ADC). Može detektirati od 0 do 5V u koracima od 0 do 1024 ili razine napona.

Dakle, razlučivost ovog ADC-a bit će 5/1024 = 0,00488 volta ili 4,88 milivolta po koraku.

Dakle, 4,88 milivolt / 2 mA (minimalna razlučivost ampermetra) = otpor 2,44 ili 2,5 ohma.

Možemo upotrijebiti četiri otpora od 10 ohma i 2 W paralelno kako bismo dobili 2,5 ohma što je testirano u prototipu.

Dakle, kako možemo reći maksimalni mjerljivi opseg predloženog ampermetra koji je 2 Ampera.

ADC može mjeriti samo od 0 do 5 V, tj. Sve gore navedeno oštetit će ADC u mikrokontroleru.

Iz testiranog prototipa primijetili smo da na dva analogna ulaza iz točke V1 i V2, kada je trenutna izmjerena vrijednost X mA, analogni napon očitava X / 2 (u serijskom monitoru).

Recimo, na primjer, ako ampermetar očita 500 mA, analogne vrijednosti na serijskom monitoru očitavaju 250 koraka ili razine napona. ADC može tolerirati do 1024 koraka ili najviše 5 V, pa kada ampermetar očita 2000 mA, serijski monitor očitava približno 1000 koraka. što je blizu 1024.

Sve iznad 1024 naponske razine oštetit će ADC u Arduinu. Da biste to izbjegli neposredno prije 2000 mA, na LCD-u će se pojaviti poruka upozorenja koja kaže da treba isključiti krug.

Do sada biste već razumjeli kako funkcionira predloženi ampermetar.

Sada prijeđimo na konstrukcijske detalje.

Shematski dijagram:

Arduino DC digitalni ampermetar

Predloženi sklop vrlo je jednostavan i prilagođen početnicima. Konstruirajte prema shemi sklopa. Podesite 10K potenciometar za podešavanje kontrasta zaslona.

Arduino možete napajati s USB-a ili putem DC priključka s 9 V baterijama. Četiri otpora od 2 vata odvodit će toplinu ravnomjerno nego upotreba jednog otpora od 2,5 oma s otporom od 8 i 10 vata.

Kad struja ne prolazi, zaslon može očitati neku malu slučajnu vrijednost koju možete zanemariti, to je možda zbog zalutalog napona na mjernim stezaljkama.

NAPOMENA: Ne mijenjajte polaritet ulaznog napajanja.

Kod programa:

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

Ako imate bilo kakvih posebnih pitanja u vezi s ovim projektom kruga digitalnih ampermetara temeljenih na Arduinu, iznesite u odjeljku za komentare, možda ćete dobiti brzi odgovor.




Prethodno: Korištenje digitalnog potenciometra MCP41xx s Arduinom Dalje: Prekid strujnog napajanja pomoću Arduina