Bu Gelişmiş Dijital Ampermetreyi Arduino kullanarak yapın

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazımızda 16 x 2 LCD ekran ve Arduino kullanarak dijital bir ampermetre yapacağız. Şönt direnci kullanarak akımı ölçme metodolojisini anlayacağız ve Arduino'ya dayalı bir tasarım uygulayacağız. Önerilen dijital ampermetre, 0 ila 2 Amper (mutlak maksimum) arasında değişen akımı makul doğrulukla ölçebilir.

Ampermetreler Nasıl Çalışır?

İki tür ampermetre vardır: Analog ve dijital, çalışmaları birbirinden çok farklıdır. Ancak, ikisinin de ortak bir kavramı vardır: Bir şönt direnci.



Şönt direnç, akımı ölçerken kaynak ile yük arasına yerleştirilen çok küçük dirençli bir dirençtir.

Bir analog ampermetrenin nasıl çalıştığını görelim ve sonra dijital olanı anlamak daha kolay olacak.



bir analog ampermetre nasıl çalışır

Çok düşük direnç R'ye sahip bir şönt direnç ve direnç boyunca bir tür analog metrenin bağlandığını varsayar; bu, sapmanın analog sayaçtan geçen voltajla doğru orantılıdır.

Şimdi sol taraftan bir miktar akım geçirelim. i1, şönt direnci R'ye girmeden önceki akımdır ve i2, şönt dirençten geçtikten sonraki akım olacaktır.

Akım i1, şönt direnci yoluyla akımın bir kısmını düşürdüğü için i2'den büyük olacaktır. Şönt direnci arasındaki akım farkı, V1 ve V2'de çok az miktarda voltaj geliştirir.
Gerilim miktarı o analog sayaçla ölçülecektir.

Şönt direnci boyunca geliştirilen voltaj iki faktöre bağlıdır: şönt direncinden geçen akım ve şönt direncinin değeri.

Şönt üzerinden akım akışı daha büyükse, geliştirilen voltaj daha fazladır. Şantın değeri yüksekse şant boyunca gelişen voltaj daha fazladır.

Şönt direnci çok küçük bir değere sahip olmalı ve daha yüksek watt değerine sahip olmalıdır.

Küçük değerli bir direnç, yükün normal çalışma için yeterli miktarda akım ve voltaj almasını sağlar.

Ayrıca şönt direnci, akımı ölçerken daha yüksek sıcaklığı tolere edebilmesi için daha yüksek watt değerine sahip olmalıdır. Şanttan geçen akım ne kadar yüksekse, o kadar çok ısı üretilir.

Şimdiye kadar bir analog metrenin nasıl çalıştığı konusunda temel bir fikre sahip olacaksınız. Şimdi dijital tasarıma geçelim.

Şimdiye kadar, bir akım akışı varsa bir direncin bir voltaj üreteceğini biliyoruz. V1 ve V2 diyagramından voltaj örneklerini mikrodenetleyiciye aldığımız noktalardır.

Gerilimin Akım Dönüşümüne Hesaplanması

Şimdi basit matematiğe bakalım, üretilen gerilimi akıma nasıl dönüştürebiliriz.

Ohm yasası: I = V / R

R şönt direncinin değerini biliyoruz ve programa girilecek.

Şönt direnci boyunca üretilen voltaj:

V = V1 - V2

Veya

V = V2 - V1 (ölçüm sırasında negatif sembolü önlemek için ve ayrıca negatif sembol akım akış yönüne bağlıdır)

Böylece denklemi basitleştirebiliriz,

Ben = (V1 - V2) / R
Veya
Ben = (V2 - V1) / R

Yukarıdaki denklemlerden biri koda girilecek ve mevcut akışı bulabiliriz ve LCD'de gösterilecektir.

Şimdi şönt direnç değerinin nasıl seçileceğini görelim.

Arduino, 10 bit analogdan dijitale dönüştürücü (ADC) inşa etmiştir. 0 ile 1024 adımlarda veya voltaj seviyelerinde 0'dan 5V'a kadar algılayabilir.

Yani bu ADC'nin çözünürlüğü adım başına 5/1024 = 0.00488 volt veya 4.88 milivolt olacaktır.

Yani 4.88 milivolt / 2 mA (minimum ampermetre çözünürlüğü) = 2.44 veya 2.5 ohm direnç.

Prototipte test edilen 2.5 ohm'u elde etmek için paralel olarak 4 adet 10 ohm, 2 Watt direnç kullanabiliriz.

Öyleyse önerilen ampermetrenin maksimum ölçülebilir aralığı olan 2 Amper'i nasıl söyleyebiliriz?

ADC yalnızca 0 ila 5 V arasında ölçüm yapabilir, yani. Yukarıdaki herhangi bir şey, mikro denetleyicideki ADC'ye zarar verecektir.

Test edilen prototipten, mevcut ölçülen değer X mA olduğunda, V1 ve V2 noktasından iki analog girişte analog voltajın X / 2'yi okuduğunu (seri monitörde) gözlemledik.

Örneğin, ampermetre 500 mA okuyorsa, seri monitördeki analog değerler 250 adımı veya voltaj seviyesini okur. ADC maksimum 1024 adıma veya 5 V'a kadar tolere edebilir, Bu nedenle ampermetre 2000 mA okuduğunda, seri monitör yaklaşık 1000 adım okur. 1024'e yakın.

1024 voltaj seviyesinin üzerindeki herhangi bir şey Arduino'daki ADC'ye zarar verecektir. Bunu 2000 mA'dan hemen önce önlemek için LCD'de devrenin bağlantısını kesmenizi söyleyen bir uyarı mesajı görüntülenecektir.

Şimdiye kadar önerilen ampermetrenin nasıl çalıştığını anlamış olurdunuz.

Şimdi yapısal ayrıntılara geçelim.

Şematik diyagram:

Arduino DC Dijital Ampermetre

Önerilen devre çok basit ve başlangıç ​​dostu. Devre şemasına göre oluşturun. Ekran kontrastını ayarlamak için 10K potansiyometreyi ayarlayın.

Arduino'ya USB'den veya DC jakı üzerinden 9 V pillerle güç verebilirsiniz. Dört adet 2 watt'lık direnç, ısıyı 8-10 watt'lık bir dirençle 2,5 ohm'luk bir direnç kullanmaktan eşit olarak dağıtacaktır.

Akım geçmediğinde, ekran bazı küçük rasgele değerleri okuyabilir ve bunu göz ardı edebilirsiniz, bunun nedeni ölçüm terminallerindeki kaçak voltaj olabilir.

NOT: Giriş yük besleme polaritesini ters çevirmeyin.

Program kodu:

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

Bu Arduino tabanlı dijital ampermetre devre projesiyle ilgili herhangi bir sorunuz varsa, lütfen yorum bölümünde belirtin, hızlı bir yanıt alabilirsiniz.




Önceki: Dijital Potansiyometre MCP41xx'i Arduino ile Kullanma Sonraki: Arduino Kullanarak Aşırı Akım Kesme Güç Kaynağı