Buat Ammeter Digital Tingkat Lanjut ini menggunakan Arduino

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dalam posting ini kita akan membuat ammeter digital menggunakan layar LCD 16 x 2 dan Arduino. Kami akan memahami metodologi pengukuran arus menggunakan resistor shunt dan mengimplementasikan desain berdasarkan Arduino. Ammeter digital yang diusulkan dapat mengukur arus mulai dari 0 hingga 2 Ampere (maksimum absolut) dengan akurasi yang wajar.

Bagaimana Pengukur Bekerja

Ada dua jenis amperemeter: Analog dan digital, cara kerjanya jauh berbeda satu sama lain. Tapi, keduanya memiliki satu konsep yang sama: Resistor shunt.



Resistor shunt adalah resistor dengan resistansi sangat kecil yang ditempatkan antara sumber dan beban saat mengukur arus.

Mari kita lihat cara kerja ammeter analog agar lebih mudah memahami ammeter digital.



cara kerja ammeter analog

Sebuah resistor shunt dengan resistansi R yang sangat rendah dan mengasumsikan beberapa jenis meter analog terhubung melintasi resistor yang defleksi berbanding lurus dengan tegangan melalui meter analog.

Sekarang mari kita lewati sejumlah arus dari sisi kiri. i1 adalah arus sebelum memasuki resistor shunt R dan i2 akan menjadi arus setelah melewati resistor shunt.

Arus i1 akan lebih besar dari i2 karena menurunkan sebagian kecil arus melalui resistor shunt. Perbedaan arus antara resistor shunt mengembangkan sejumlah kecil tegangan pada V1 dan V2.
Besarnya tegangan akan diukur dengan meter analog tersebut.

Tegangan yang dikembangkan melintasi resistor shunt bergantung pada dua faktor: arus yang mengalir melalui resistor shunt dan nilai resistor shunt.

Jika aliran arus lebih besar melalui shunt, tegangan yang dikembangkan lebih besar. Jika nilai shunt tinggi, tegangan yang dikembangkan melintasi shunt lebih tinggi.

Resistor shunt harus bernilai sangat kecil dan harus memiliki nilai watt yang lebih tinggi.

Sebuah resistor nilai kecil memastikan bahwa beban mendapatkan jumlah arus dan tegangan yang cukup untuk operasi normal.

Juga resistor shunt harus memiliki nilai watt yang lebih tinggi sehingga dapat mentolerir suhu yang lebih tinggi saat mengukur arus. Semakin tinggi arus melalui shunt, semakin banyak panas yang dihasilkan.

Sekarang Anda sudah mendapatkan ide dasar, bagaimana pengukur analog bekerja. Sekarang mari beralih ke desain digital.

Sekarang kita tahu bahwa sebuah resistor akan menghasilkan tegangan jika ada aliran arus. Dari diagram V1 dan V2 inilah titik-titiknya, dimana kita ambil sampel tegangannya ke mikrokontroler.

Menghitung Konversi Tegangan ke Arus

Sekarang mari kita lihat matematika sederhana, bagaimana kita dapat mengubah tegangan yang dihasilkan menjadi arus.

Hukum ohm: I = V / R

Kita tahu nilai resistor shunt R dan itu akan dimasukkan ke dalam program.

Tegangan yang dihasilkan melintasi resistor shunt adalah:

V = V1 - V2

Atau

V = V2 - V1 (untuk menghindari simbol negatif saat mengukur dan juga simbol negatif tergantung arah aliran arus)

Jadi kita bisa menyederhanakan persamaan,

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

Salah satu persamaan di atas akan dimasukkan ke dalam kode dan kita dapat menemukan aliran arus dan akan ditampilkan di LCD.

Sekarang mari kita lihat bagaimana memilih nilai resistor shunt.

Arduino telah membangun konverter analog ke digital (ADC) 10 bit. Ini dapat mendeteksi dari 0 hingga 5V dalam langkah 0 hingga 1024 atau level tegangan.

Jadi resolusi ADC ini adalah 5/1024 = 0,00488 volt atau 4,88 milivolt per step.

Jadi 4,88 milivolt / 2 mA (resolusi minimum amperemeter) = 2,44 atau resistor 2,5 ohm.

Kita dapat menggunakan empat resistor 10 ohm, 2 Watt secara paralel untuk mendapatkan 2,5 ohm yang telah diuji dalam prototipe.

Jadi, bagaimana kita bisa mengatakan kisaran terukur maksimum dari ampere yang diusulkan adalah 2 Ampere.

ADC dapat mengukur dari 0 hingga 5 V saja. Apa pun di atas akan merusak ADC di mikrokontroler.

Dari prototipe yang diuji kami telah mengamati bahwa, pada dua input analog dari titik V1 dan V2 ketika nilai terukur arus X mA, tegangan analog terbaca X / 2 (di monitor serial).

Katakanlah misalnya, jika amperemeter membaca 500 mA, nilai analog pada monitor serial membaca 250 langkah atau level tegangan. ADC dapat mentolerir hingga 1024 langkah atau maksimum 5 V, Jadi ketika ammeter membaca 2000 mA, monitor serial membaca sekitar 1000 langkah. yang mendekati 1024.

Apa pun di atas level tegangan 1024 akan merusak ADC di Arduino. Untuk menghindari ini sebelum 2000 mA, pesan peringatan akan muncul pada LCD yang mengatakan untuk memutuskan sirkuit.

Sekarang Anda akan memahami cara kerja amperemeter yang diusulkan.

Sekarang mari beralih ke detail konstruksi.

Diagram skematik:

Ammeter Digital Arduino DC

Sirkuit yang diusulkan sangat sederhana dan ramah pemula. Bangun sesuai diagram sirkuit. Sesuaikan potensiometer 10K untuk menyesuaikan kontras tampilan.

Anda dapat menyalakan Arduino dari USB atau melalui jack DC dengan baterai 9 V. Empat buah resistor 2 watt akan menghilangkan panas secara merata dibandingkan menggunakan satu buah resistor 2.5 ohm dengan resistor 8-10 watt.

Ketika tidak ada arus yang lewat, layar dapat membaca beberapa nilai acak kecil yang mungkin Anda abaikan, ini mungkin karena tegangan yang menyimpang di terminal pengukuran.

CATATAN: Jangan membalikkan polaritas suplai beban masukan.

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

Jika Anda memiliki pertanyaan khusus tentang proyek rangkaian amperemeter digital berbasis Arduino ini, silakan ungkapkan di bagian komentar, Anda dapat menerima balasan cepat.




Sepasang: Menggunakan Potensiometer Digital MCP41xx Dengan Arduino Berikutnya: Catu Daya Pemutus Arus Lebih Menggunakan Arduino