Tentang proyek ini
Multimeter Digital Sederhana (DMM) tidak dapat mengukur kapasitansi dan untuk menemukan kapasitansi, Anda harus menggunakan DMM yang mahal dan canggih atau menemukan modul Kapasitansi khusus.
Dalam proyek ini, saya akan membangun Pengukur Kapasitansi Arduino sederhana dengan fitur Auto-Ranging. Itu dapat mengukur kapasitansi dari 10 pF hingga 10.000 F. Pengukuran berlangsung dalam mode otomatis, cukup menghubungkan kapasitor ke kontak pengukur. Perangkat ini memiliki dua rentang:"nF" dan "μF". Saat mengukur kapasitor, rentang "nF" pertama kali diaktifkan, jika kapasitansi terlalu besar, maka transisi ke rentang "μF" terjadi.
Setiap meter kapasitansi memiliki rangkaian RC dengan nilai resistor yang diketahui dan nilai kapasitor yang tidak diketahui. Arduino akan mengukur tegangan pada kapasitor dan mencatat waktu yang diperlukan untuk mencapai persentase tertentu dari tegangan ketika terisi penuh (konstanta waktu). Karena nilai resistansi sudah diketahui, kita dapat menggunakan rumus dalam program yang akan menghitung kapasitansi yang tidak diketahui. Kapasitor yang diuji diisi menggunakan salah satu resistor. Arduino memulai pengisian kapasitor melalui resistor sesuai dengan kapasitasnya. Dalam pengukur kapasitansi, kalibrasi nol dilakukan setiap kali dihidupkan, oleh karena itu, pada saat dinyalakan, kapasitor tidak boleh dihubungkan ke kontak pengukur. Selain itu, semua kapasitor harus diisi daya terlebih dahulu.
Akurasinya adalah +/- beberapa persen dan terutama bergantung pada toleransi resistor yang digunakan serta stabilitas tegangan suplai.
Terakhir, seluruh perangkat disimpan dalam kotak yang sesuai dan merupakan alat lain yang berguna di lab Anda.
Kode
Kode ArduinoC/C++
#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// RS,E,D4,D5,D6,D7void setup(){ lcd.begin(16, 2 );// LCD 16X2 pinMode(A0,INPUT);}waktu lama yang tidak ditandatangani0,waktu1,waktu2; float c,null0;byte kn,mk,i;void loop(){ lcd.setCursor(15,0); lcd.print("*"); if(mk==0){ pinMode(8,OUTPUT); pinMode(7,INPUT); digitalWrite(8,TINGGI); } if(mk==1){ pinMode(7,OUTPUT); pinMode(8,INPUT); digitalWrite(7,TINGGI); } waktu0=mikro(); while(analogRead(A0)<644){ time2=micros()-time0; if(waktu2>=1000000 &&mk==0){ mk=1; waktu0=100000000; merusak; } } waktu1=mikro()-waktu0; while(analogRead(A0)>0){ pinMode(7,OUTPUT); pinMode(8,OUTPUT); digitalWrite(7,RENDAH); digitalWrite(8,RENDAH); } jika(mk==1&&waktu1<1000){ mk=0; } lcd.setCursor(1,0); c=waktu1; c=c/1000-null0; c=abs(c); if(time1>=10000000){ lcd.setCursor(1,0); lcd.print("UJI uF"); } else{ lcd.print(c); if(mk==0){ lcd.print(" nF "); } if(mk==1){ lcd.print(" uF "); } } jika(i==0){ i++; null0=c+0.02; } delay(100);}
Skema