Készítse el ezt a fejlett digitális ampermérőt az Arduino használatával

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a bejegyzésben egy digitális ampermérőt fogunk építeni 16 x 2 LCD kijelző és Arduino segítségével. Megértjük az áram mérésének módját egy söntellenállás segítségével, és megvalósítunk egy Arduino-alapú tervet. A javasolt digitális ampermérő ésszerű pontossággal képes mérni az áramerősséget 0 és 2 amper között (abszolút maximum).

Hogyan működnek az ampermérők

Kétféle ampermérő létezik: analóg és digitális, működésük nagyon különbözik egymástól. De mindkettőjükben egy közös fogalom van: egy söntellenállás.



A söntellenállás olyan ellenállás, amelynek nagyon kis ellenállása van a forrás és a terhelés között, miközben az áramot mérik.

Lássuk, hogyan működik az analóg ampermérő, és akkor könnyebb megérteni a digitálisat.



hogyan működik egy analóg ampermérő

Egy nagyon alacsony R ellenállású söntellenállás, és feltételezzük, hogy valamilyen analóg mérő van az ellenálláson keresztül csatlakoztatva, és az elhajlás egyenesen arányos az analóg mérőn keresztüli feszültséggel.

Most adjunk át némi áramot a bal oldalról. i1 az áram, mielőtt belépne az R söntellenállásba, és i2 a söntellenálláson való áthaladás után.

Az i1 áram nagyobb lesz, mint i2, mivel az áram töredékét ejtette át a söntellenálláson. A söntellenállás közötti áramkülönbség nagyon kis feszültséget fejleszt ki V1 és V2 feszültségeken.
A feszültség mértékét az analóg mérő fogja mérni.

A söntellenálláson kialakult feszültség két tényezőtől függ: a söntellenálláson átáramló áramtól és a söntellenállás értékétől.

Ha az áramlás nagyobb a söntön, akkor a kialakult feszültség nagyobb. Ha a sönt értéke magas, a söntön keresztül kialakult feszültség nagyobb.

A söntellenállásnak nagyon apró értékűnek kell lennie, és nagyobb teljesítményűnek kell lennie.

Kis értékű ellenállás biztosítja, hogy a terhelés megfelelő mennyiségű áramot és feszültséget kapjon a normál működéshez.

A söntellenállásnak nagyobb teljesítményűnek kell lennie, hogy az áram mérése közben elviselje a magasabb hőmérsékletet. Minél nagyobb az áram a söntön keresztül, annál több hő keletkezik.

Mostanra megkapta az alapötletet, hogyan működik az analóg mérő. Most térjünk át a digitális tervezésre.

Mostanra tudjuk, hogy egy ellenállás feszültséget állít elő, ha áram áramlik. A V1 és V2 diagramból láthatók azok a pontok, ahol a feszültségmintákat a mikrovezérlőhöz viszzük.

A feszültség / áram átalakítás kiszámítása

Most nézzük meg az egyszerű matematikát, hogyan alakíthatjuk át az előállított feszültséget árammá.

Az ohm törvénye: I = V / R

Ismerjük az R söntellenállás értékét, és beírásra kerül a programba.

A söntellenálláson keletkező feszültség:

V = V1 - V2

Vagy

V = V2 - V1 (a mérés közbeni negatív szimbólum elkerülése és a negatív szimbólum az áramlás irányától is függ)

Tehát leegyszerűsíthetjük az egyenletet,

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

A fenti egyenletek egyikét beírjuk a kódba, és megtalálhatjuk az aktuális folyamatot, és megjelenik az LCD-n.

Most nézzük meg, hogyan lehet kiválasztani a söntellenállás értékét.

Az Arduino beépített 10 bites analóg-digitális átalakítót (ADC). 0 és 5 V közötti feszültséget képes felismerni 0-1024 lépésben vagy feszültségszintben.

Tehát ennek az ADC-nek a felbontása lépésenként 5/1024 = 0,00488 volt vagy 4,88 millivolt lesz.

Tehát 4,88 millivolt / 2 mA (az ampermérő minimális felbontása) = 2,44 vagy 2,5 ohmos ellenállás.

Négy 10 ohmos, 2 wattos ellenállást használhatunk párhuzamosan, hogy 2,5 ohmot kapjunk, amelyet a prototípusban teszteltünk.

Tehát hogyan mondhatjuk el a javasolt ampermérő maximális mérhető tartományát, amely 2 Amper.

Az ADC csak 0 és 5 V között mérhet, azaz. A fentiek bármelyike ​​károsítja a mikrokontroller ADC-jét.

A tesztelt prototípusból azt figyeltük meg, hogy a V1 és V2 pont két analóg bemeneténél, amikor az aktuális mért érték X mA, az analóg feszültség X / 2 értéket mutat (soros monitoron).

Mondjuk például, ha az ampermérő 500 mA-t mutat, akkor a soros monitoron az analóg értékek 250 lépést vagy feszültségszintet mutatnak. Az ADC legfeljebb 1024 lépést vagy maximum 5 V-ot képes elviselni, így amikor az ampermérő 2000 mA-t mutat, a soros monitor kb. amely 1024 közelében van.

Minden, ami meghaladja az 1024 feszültségszintet, károsítja az ADC-t Arduinóban. Ennek elkerülése érdekében 2000 mA előtt egy figyelmeztető üzenet kéri az LCD-t, amely azt mondja, hogy válassza le az áramkört.

Mostanra megértette volna a javasolt ampermérő működését.

Most térjünk át a konstrukciós részletekre.

Sematikus ábrája:

Arduino DC digitális ampermérő

A javasolt áramkör nagyon egyszerű és kezdőbarát. Készítse el a kapcsolási rajz szerint. A kijelző kontrasztjának beállításához állítsa be a 10K potenciométert.

Az Arduino tápellátását USB-n vagy 9 V-os akkumulátorral ellátott DC-aljzaton keresztül végezheti. Négy 2 wattos ellenállás egyenletesen oszlatja el a hőt, mint egy 2,5 ohmos ellenállás használata 8-10 wattos ellenállással.

Ha áram nem halad át, a kijelző kis véletlenszerű értékeket olvashat, amelyeket figyelmen kívül hagyhat, ennek oka lehet a mérőkapcsok közötti kósza feszültség.

MEGJEGYZÉS: Ne változtassa meg a bemeneti terhelés tápellátásának polaritását.

Program kód:

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

Ha bármilyen konkrét kérdése van ezzel az Arduino alapú digitális ampermérő áramköri projekttel kapcsolatban, kérjük, fejtse ki a megjegyzés részben, hogy gyors választ kaphasson.




Előző: Az MCP41xx digitális potenciométer használata Arduino-val Következő: Túláramú áramellátás az Arduino használatával