Lag dette avanserte digitale amperemeteret med Arduino

Prøv Instrumentet Vårt For Å Eliminere Problemer





I dette innlegget skal vi konstruere et digitalt amperemeter ved hjelp av 16 x 2 LCD-skjerm og Arduino. Vi vil forstå metodikken for å måle strøm ved hjelp av en shuntmotstand og implementere en design basert på Arduino. Det foreslåtte digitale amperemeteret kan måle strøm fra 0 til 2 Ampere (absolutt maksimum) med rimelig nøyaktighet.

Hvordan Ammetere fungerer

Det er to typer ammetere: Analog og digital, deres funksjoner er forskjellige fra hverandre. Men begge har et felles konsept: En shuntmotstand.



En shuntmotstand er en motstand med veldig liten motstand plassert mellom kilden og belastningen mens den måler strømmen.

La oss se hvordan et analogt amperemeter fungerer, og da blir det lettere å forstå det digitale.



hvordan et analogt amperemeter fungerer

En shuntmotstand med svært lav motstand R og antar at en slags analog måler er koblet over motstanden, hvis avbøyning er direkte proporsjonal med spenningen gjennom den analoge måleren.

La oss nå passere litt strøm fra venstre side. i1 er strømmen før du går inn i shuntmotstanden R og i2 vil være strømmen etter å ha passert gjennom shuntmotstanden.

Strømmen i1 vil være større enn i2 siden den droppet en brøkdel av strømmen gjennom shuntmotstanden. Strømforskjellen mellom shuntmotstanden utvikler veldig liten mengde spenning ved V1 og V2.
Mengden spenning vil bli målt av den analoge måleren.

Spenningen utviklet over shuntmotstanden avhenger av to faktorer: strømmen som strømmer gjennom shuntmotstanden og verdien av shuntmotstanden.

Hvis strømmen er større gjennom shunten, er spenningen som er utviklet mer. Hvis verdien av shunten er høy, er spenningen som er utviklet over shunten mer.

Shuntmotstanden må være veldig liten, og den må ha høyere wattstyrke.

En motstand med liten verdi sikrer at belastningen får tilstrekkelig strøm og spenning for normal drift.

Shuntmotstanden må også ha høyere wattstyrke slik at den tåler høyere temperatur mens den måler strømmen. Jo høyere strøm gjennom shunten mer genereres varmen.

Nå hadde du fått den grunnleggende ideen om hvordan en analog måler fungerer. La oss nå gå videre til digital design.

Nå vet vi at en motstand vil produsere en spenning hvis det er en strømstrøm. Fra diagrammet V1 og V2 er punktene der vi tar spenningsprøvene til mikrokontrolleren.

Beregning av spenning til strømkonvertering

La oss nå se den enkle matematikken, hvordan kan vi konvertere den produserte spenningen til strøm.

Ohms lov: I = V / R

Vi vet verdien av shuntmotstanden R, og den vil bli lagt inn i programmet.

Spenningen som produseres over shuntmotstanden er:

V = V1 - V2

Eller

V = V2 - V1 (for å unngå negativt symbol mens du måler og også negativt symbol avhenger av strømningsretningen)

Så vi kan forenkle ligningen,

I = (V1 - V2) / R.
Eller
I = (V2 - V1) / R.

En av ovenstående ligninger vil bli lagt inn i koden, og vi kan finne strømmen og vises i LCD-skjermen.

La oss nå se hvordan vi velger shuntmotstandsverdien.

Arduino har innebygd 10 bit analog til digital omformer (ADC). Den kan oppdage fra 0 til 5V i 0 til 1024 trinn eller spenningsnivåer.

Så oppløsningen til denne ADC vil være 5/1024 = 0,00488 volt eller 4,88 millivolt per trinn.

Så 4,88 millivolt / 2 mA (minimum oppløsning av amperemeter) = 2,44 eller 2,5 ohm motstand.

Vi kan bruke fire motstander på 10 ohm, 2 Watt parallelt for å få 2,5 ohm som ble testet i prototypen.

Så hvordan kan vi si det maksimale målbare området for det foreslåtte amperemeteret som er 2 ampere.

ADC kan bare måle fra 0 til 5 V, dvs. Alt ovenfor vil skade ADC i mikrokontrolleren.

Fra den testede prototypen hva vi har observert at, ved de to analoge inngangene fra punkt V1 og V2 når den nåværende målte verdien X mA, leser den analoge spenningen X / 2 (i seriell skjerm).

Si for eksempel, hvis amperemeteret leser 500 mA, leser de analoge verdiene på seriell skjerm 250 trinn eller spenningsnivåer. ADC tåler opptil 1024 trinn eller maksimalt 5 V, så når amperemåler leser 2000 mA, leser seriell skjerm 1000 trinn ca. som er nær 1024.

Alt over 1024 spenningsnivå vil skade ADC i Arduino. For å unngå dette like før 2000 mA vil en advarsel vises på LCD-skjermen som sier at du skal koble fra kretsen.

Nå hadde du forstått hvordan det foreslåtte amperemeter fungerer.

La oss nå gå videre til konstruksjonsdetaljer.

Skjematisk diagram:

Arduino DC Digital amperemeter

Den foreslåtte kretsen er veldig enkel og nybegynnervennlig. Konstruer i henhold til kretsskjemaet. Juster 10K potensiometer for å justere skjermkontrasten.

Du kan drive Arduino fra USB eller via DC-kontakt med 9 V batterier. Fire motstander på 2 watt vil spre varmen jevnt enn å bruke en 2,5 ohm motstand med 8- 10 watt motstand.

Når det ikke går noen strøm, kan det hende at skjermen leser noen små tilfeldige verdier som du kan ignorere den.

MERKNAD: Ikke snu polariteten for inngangsbelastningen.

Programkode:

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

Hvis du har noen spesifikke spørsmål angående dette Arduino-baserte digitale amperemeterkretsprosjektet, vennligst uttrykk i kommentarseksjonen, du kan få et raskt svar.




Forrige: Bruke digitalt potensiometer MCP41xx med Arduino Neste: Over Current Cut-off Power Supply Using Arduino