Litar Ohmmeter Digital Arduino Mudah

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam catatan ini kita akan membina litar ohmmeter digital sederhana menggunakan paparan Arduino dan 16x2 LCD. Kami juga akan meneroka idea litar lain yang mungkin menggunakan konsep yang sama.

Objektif Litar

Moto artikel ini bukan hanya membuat meter ohm untuk mengukur rintangan yang boleh dilakukan oleh multimeter anda dengan cara yang sama.



Objektif utama projek ini adalah menggunakan nilai rintangan yang dibaca oleh arduino untuk melakukan beberapa projek yang berguna, misalnya penggera kebakaran, di mana perubahan nilai rintangan termistor dapat dikesan dengan mudah atau sistem pengairan automatik di mana, jika ketahanan tanah naik tinggi mikrokontroler boleh mencetuskan pam air. Kemungkinan projek bergantung kepada imaginasi anda.

Mari lihat bagaimana membuat meter ohm terlebih dahulu dan kemudian kita beralih ke idea litar lain.



Bagaimana ia berfungsi

Litar Arduino Ohmmeter

Litar ini terdiri daripada Arduino, anda mungkin menggunakan papan Arduino kegemaran anda, paparan LCD 16x2 untuk menunjukkan nilai perintang yang tidak diketahui, potensiometer untuk menyesuaikan tahap kontras paparan LCD. Dua perintang digunakan, salah satunya dikenali sebagai nilai perintang dan yang lain adalah nilai perintang yang tidak diketahui.

Rintangan adalah fungsi analog, tetapi nilai yang ditunjukkan pada LCD adalah fungsi digital. Jadi, kita perlu melakukan penukaran analog ke digital, untungnya Arduino mempunyai penukar analog ke digital 10-bit.

ADC 10-bit dapat membezakan 1024 tahap voltan diskrit, 5 volt dikenakan pada 2 perintang dan sampel voltan diambil di antara perintang.

Dengan menggunakan beberapa pengiraan matematik, penurunan voltan pada nod dan nilai rintangan yang diketahui dapat ditafsirkan untuk mencari nilai rintangan yang tidak diketahui.

Persamaan matematik ditulis dalam program, jadi tidak perlu dilakukan pengiraan manual, kita dapat membaca nilai langsung dari paparan LCD.

Prototaip pengarang:

Prototaip Arduino Digital Ohmmeter

Program untuk meter Ohm:

//-------------Program developed by R.Girish--------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known Resistor value in Ohm
float resistor=0
float buffer=0
void setup()
{
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('----OHM METER---')
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
lcd.setCursor(0,1)
lcd.print('R = ')
lcd.print(resistor)
lcd.print(' Ohm')
delay(3000)
}
//-------------Program developed by R.Girish--------//

CATATAN: float R = 10000 // Nilai Resistor yang dikenali di Ohm

Anda boleh menukar nilai perintang yang diketahui di litar, tetapi jika anda melakukannya, sila ubah nilai dalam program juga.

Seperti multimeter konvensional, litar ohmmeter digital Arduino ini juga mempunyai beberapa julat untuk mengukur rintangan. Sekiranya anda cuba mengukur perintang nilai rendah dalam julat mega ohm di multimeter anda, sudah tentu anda mendapat nilai ralat.

Begitu juga, ini juga berlaku untuk ohmmeter ini.

Sekiranya anda ingin mengukur rintangan dari 1K hingga 50K ohm, perintang yang diketahui 10K ohm akan mencukupi, tetapi jika anda mengukur julat Mega ohm atau julat beberapa ohm, anda akan mendapat bacaan sampah. Oleh itu, adalah perlu untuk menukar nilai perintang yang diketahui kepada julat yang sesuai.

Pada bahagian seterusnya artikel ini, kita akan mengkaji litar paparan LCD untuk ohmmeter dan kita akan melihat bagaimana membaca nilai sensor (rintangan tidak diketahui) di monitor bersiri.

Kami juga akan menyatakan nilai ambang dalam program, setelah melepasi ambang yang telah ditentukan, Arduino akan mencetuskan relay.

Rajah Litar:

Kod Program:

//-------------Program developed by R.Girish--------//
float th=7800 // Set resistance threshold in Ohms
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known value Resistor in Ohm
float resistor=0
float buffer=0
int op=7
void setup()
{
Serial.begin(9600)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
Serial.print('R = ')
Serial.print(resistor)
Serial.println(' Ohm')
if(th>resistor) // if resistance cross below threshold value, output is on, if you want opposite result use '<' //
{
digitalWrite(op,HIGH)
Serial.println('Output is ON')
delay(3000)
}
else
{
digitalWrite(op,LOW)
Serial.println('Output is OFF')
delay(3000)
}
}
//-------------Program developed by R.Girish--------//

CATATAN:

• float th = 7800 // Tetapkan ambang rintangan di Ohms
Ganti 7800 ohm dengan nilai anda.
• apungan R = 10000 // Nilai Perintang yang dikenali di Ohm
Ganti 10000 ohm dengan nilai perintang yang anda ketahui.
• jika (th> perintang)

Garis dalam program ini menyatakan bahawa, jika rintangan sensor berada di bawah nilai ambang output AKTIF dan sebaliknya.

Sekiranya anda ingin menghidupkan relay ketika bacaan sensor melebihi ambang dan sebaliknya, ganti 'if (thresistor)'

Dengan mengukur rintangan sensor secara langsung (LDR atau termistor atau apa sahaja) dan menetapkan ambang, kita dapat memperoleh ketepatan kawalan yang tinggi terhadap relay, LED, motor dan periferal lain.

Ia lebih baik daripada pembanding, di mana kita menetapkan voltan rujukan dan menetapkan ambang dengan memutar perintang pemboleh ubah secara membuta tuli untuk menyelesaikan projek serupa.




Sebelumnya: Litar Pengawal Tahap Penyimpanan Bahan Seterusnya: Litar Tachometer 10 LED