Jadikan Ammeter Digital Lanjutan ini menggunakan Arduino

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam catatan ini kita akan membina ammeter digital menggunakan paparan LCD 16 x 2 dan Arduino. Kami akan memahami metodologi mengukur arus menggunakan resistor shunt dan melaksanakan reka bentuk berdasarkan Arduino. Ammeter digital yang dicadangkan dapat mengukur arus antara 0 hingga 2 Ampere (maksimum mutlak) dengan ketepatan yang munasabah.

Bagaimana Ammeters Berfungsi

Terdapat dua jenis ammeters: Analog dan digital, cara kerjanya berbeza antara satu sama lain. Tetapi, mereka berdua mempunyai satu persamaan konsep: Perintang shunt.



Perintang shunt adalah perintang dengan rintangan yang sangat kecil diletakkan di antara sumber dan beban semasa mengukur arus.

Mari kita lihat bagaimana ammeter analog berfungsi dan kemudian lebih mudah untuk memahami yang digital.



bagaimana ammeter analog berfungsi

Perintang shunt dengan rintangan R yang sangat rendah dan menganggap sejenis meter analog disambungkan merintangi perintang yang pesongannya berkadar terus dengan voltan melalui meter analog.

Sekarang mari kita hadirkan sejumlah arus dari sebelah kiri. i1 adalah arus sebelum memasuki perintang shunt R dan i2 akan menjadi arus setelah melewati perintang shunt.

Arus i1 akan lebih besar daripada i2 kerana ia menurunkan sebahagian arus melalui perintang shunt. Perbezaan semasa antara perintang shunt menghasilkan voltan yang sangat kecil pada V1 dan V2.
Jumlah voltan akan diukur oleh meter analog itu.

Voltan yang dibina melintasi perintang shunt bergantung pada dua faktor: arus yang mengalir melalui perintang shunt dan nilai perintang shunt.

Sekiranya aliran arus lebih besar melalui shunt, voltan yang dikembangkan lebih banyak. Sekiranya nilai shunt tinggi, voltan yang dikembangkan di sepanjang shunt adalah lebih banyak.

Perintang shunt mestilah bernilai sangat kecil dan mesti mempunyai nilai watt yang lebih tinggi.

Perintang nilai kecil memastikan bahawa beban mendapat jumlah arus dan voltan yang mencukupi untuk operasi normal.

Juga perintang shunt mesti mempunyai peringkat watt yang lebih tinggi sehingga dapat menahan suhu yang lebih tinggi semasa mengukur arus. Semakin tinggi arus melalui shunt semakin banyak haba dihasilkan.

Sekarang anda akan mendapat idea asas, bagaimana meter analog berfungsi. Sekarang mari beralih ke reka bentuk digital.

Sekarang kita tahu bahawa perintang akan menghasilkan voltan sekiranya terdapat arus. Dari rajah V1 dan V2 adalah titik, di mana kita membawa sampel voltan ke mikrokontroler.

Mengira Voltan ke Penukaran Semasa

Sekarang mari kita lihat matematik yang mudah, bagaimana kita boleh menukar voltan yang dihasilkan menjadi arus.

Undang-undang ohm: I = V / R

Kami mengetahui nilai perintang shunt R dan ia akan dimasukkan dalam program.

Voltan yang dihasilkan melintasi perintang shunt adalah:

V = V1 - V2

Atau

V = V2 - V1 (untuk mengelakkan simbol negatif semasa mengukur dan juga simbol negatif bergantung pada arah aliran arus)

Oleh itu, kita dapat mempermudah persamaannya,

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

Salah satu persamaan di atas akan dimasukkan dalam kod dan kita dapat mencari aliran semasa dan akan dipaparkan di LCD.

Sekarang mari kita lihat bagaimana memilih nilai perintang shunt.

Arduino telah membina penukar analog ke digital 10 bit (ADC). Ia dapat mengesan dari 0 hingga 5V dalam 0 hingga 1024 langkah atau tahap voltan.

Jadi resolusi ADC ini akan menjadi 5/1024 = 0.00488 volt atau 4.88 milivolt per langkah.

Jadi 4.88 milivolt / 2 mA (resolusi minimum ammeter) = 2.44 atau 2.5 ohm perintang.

Kita boleh menggunakan empat perintang 10 ohm, 2 Watt secara selari untuk mendapatkan 2.5 ohm yang diuji dalam prototaip.

Jadi, bagaimana kita boleh mengatakan julat maksimum yang boleh diukur dari ammeter yang dicadangkan iaitu 2 Ampere.

ADC hanya boleh mengukur dari 0 hingga 5 V, iaitu. Apa sahaja di atas akan merosakkan ADC dalam mikrokontroler.

Daripada prototaip yang diuji apa yang telah kita perhatikan bahawa, pada dua input analog dari titik V1 dan V2 ketika nilai yang diukur semasa X mA, voltan analog membaca X / 2 (dalam monitor bersiri).

Katakan sebagai contoh, jika ammeter membaca 500 mA, nilai analog pada monitor bersiri membaca 250 langkah atau tahap voltan. ADC boleh bertolak ansur hingga 1024 langkah atau maksimum 5 V, Oleh itu apabila ammeter membaca 2000 mA, monitor bersiri membaca 1000 langkah lebih kurang. yang hampir dengan 1024.

Apa-apa yang melebihi tahap voltan 1024 akan merosakkan ADC di Arduino. Untuk mengelakkan perkara ini tepat sebelum 2000 mA, mesej amaran akan meminta pada LCD yang mengatakan untuk memutuskan litar.

Sekarang anda sudah faham bagaimana ammeter yang dicadangkan berfungsi.

Sekarang mari kita beralih kepada perincian konstruktif.

Gambarajah skematik:

Ammeter Digital Arduino DC

Litar yang dicadangkan sangat mudah dan mesra pemula. Bentukkan mengikut rajah litar. Laraskan potensiometer 10K untuk menyesuaikan kontras paparan.

Anda boleh menghidupkan Arduino dari USB atau melalui bicu DC dengan bateri 9 V. Empat perintang 2 watt akan menghilangkan haba secara merata daripada menggunakan satu perintang 2.5 ohm dengan perintang 8-10 watt.

Apabila tiada arus yang berlalu, paparan mungkin membaca beberapa nilai rawak kecil yang mungkin anda abaikan, ini mungkin disebabkan oleh voltan sesat di terminal pengukur.

CATATAN: Jangan membalikkan polariti bekalan muatan input.

Kod Program:

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

Sekiranya anda mempunyai pertanyaan khusus mengenai projek litar ammeter digital berasaskan Arduino ini, sila nyatakan di bahagian komen, anda mungkin akan mendapat balasan pantas.




Sebelumnya: Menggunakan Potensiometer Digital MCP41xx Bersama Arduino Seterusnya: Bekalan Kuasa Terputus Semasa Menggunakan Arduino