Mạch đo điện Cảm Và điện Dung Sử Dụng Arduino

Linh kiện cần có trong Mạch đo điện cảm và điện dung sử dụng arduino

  1. Arduino una
  2. IC opamp 741
  3. Pin 3v
  4. Điện trở 100 ohm
  5. Tụ điện
  6. Cuộn cảm
  7. 1n4007 diode
  8. Điện trở 10k
  9. Hủ 10k
  10. Nguồn cấp
  11. Nút ấn
  12. Breadboard hoặc PCB
  13. Kết nối dây

Tính toán tần số và điện cảm

Trong Project này, mình sẽ đo độ tự cảm và điện dung bằng cách sử dụng một mạch LC song song . Mạch này giống như một chiếc chuông hoặc chuông bắt đầu cộng hưởng ở một tần số nhất định. Bất cứ khi nào mình áp dụng một xung, mạch LC này sẽ bắt đầu cộng hưởng và tần số cộng hưởng này ở dạng tương tự (sóng hình sin) vì vậy mình cần chuyển đổi nó thành sóng squire. Để làm điều này, mình áp dụng tần số cộng hưởng tương tự này cho opamp (trong trường hợp của mình là 741) sẽ chuyển đổi nó ở dạng sóng squire (tần số) ở 50% chu kỳ nhiệm vụ. Bây giờ mình đo tần số bằng cách sử dụng Arduino và bằng cách sử dụng một số phép tính toán học, mình có thể tìm thấy độ tự cảm hoặc điện dung. mình đã sử dụng công thức đáp ứng tần số mạch LC đã cho .

f=1/(2*time)

mà thời gian là đầu ra của pulseIn () chức năng

bây giờ mình có mạch LC Tần số:

f=1/2*Pi* square root of (LC)

mình có thể giải quyết nó để có được điện cảm:

f2 = 1/ (4Pi2LC) L= 1/ (4Pi2 f2C) L = 1/(4* Pi * Pi * f * f * C)

Như mình đã đề cập rằng sóng của mình là sóng hình sin nên nó có cùng khoảng thời gian với cả biên độ dương và âm. Nó có nghĩa là bộ so sánh sẽ chuyển nó thành sóng vuông có chu kỳ nhiệm vụ 50%. Vì vậy, mình có thể đo lường nó bằng cách sử dụng hàm xungIn () của Arduino. Hàm này sẽ cung cấp cho mình một khoảng thời gian có thể dễ dàng chuyển đổi thành tần số bằng cách đảo ngược khoảng thời gian. Vì hàm xungIn chỉ đo một xung, vì vậy bây giờ để có được tần số chính xác, mình phải nhân nó với 2. Bây giờ mình có một tần số có thể được chuyển đổi thành điện cảm bằng cách sử dụng công thức trên.

Lưu ý: trong khi đo độ tự cảm (L1), giá trị tụ điện (C1) phải là 0,1uF và trong khi đo điện dung (C1), giá trị cuộn cảm (L1) phải là 10mH.

Sơ đồ mạch và giải thích Mạch đo điện cảm và điện dung sử dụng arduino

Trong sơ đồ mạch LC Meter này , mình đã sử dụng Arduino để điều khiển hoạt động của Project. Trong điều này, mình đã sử dụng một mạch LC. Mạch LC này gồm một cuộn cảm và một tụ điện. Để chuyển đổi tần số cộng hưởng hình sin sang sóng kỹ thuật số hoặc sóng vuông, mình đã sử dụng âm ly hoạt động cụ thể là 741. Ở đây mình cần áp dụng nguồn cung cấp âm cho op-amp để có được tần số đầu ra chính xác. Vì vậy, mình đã sử dụng một pin 3v nối ngược cực, nghĩa là chân âm 741 được nối với cực âm của pin và chân dương của pin được nối với đất của mạch còn lại. Để rõ hơn, hãy xem sơ đồ mạch bên dưới.

Ở đây mình có một nút nhấn để thay đổi chế độ hoạt động cho dù mình đang đo điện cảm hay điện dung. Một LCD 16×2 được dùng để hiển thị độ tự cảm hoặc điện dung cùng tần số với mạch LC. Một nồi 10k được sử dụng để kiểm soát độ sáng của màn hình LCD. Mạch được cấp nguồn với sự trợ giúp của nguồn cung cấp 5v Arduino và mình có thể cấp nguồn cho Arduino 5v bằng bộ chuyển đổi USB hoặc 12v.

Đo tần số và điện dung

Đo tần số và điện cảm

Giải thích

Phần lập trình của LC Meter này rất dễ dàng. Code Arduino hoàn chỉnh được đưa ra ở cuối bài viết này.

Đầu tiên mình phải bao gồm thư viện cho LCD và khai báo một số chân và macro.

#include<LiquidCrystal.h> LiquidCrystal lcd(A5, A4, A3, A2, A1, A0); #define serial #define charge 3 #define freqIn 2 #define mode 10 #define Delay 15 double frequency, capacitance, inductance; typedef struct { int flag: 1; }Flag; Flag Bit;

Sau đó, trong chức năng cài đặt, mình đã khởi tạo giao tiếp LCD và Serial để hiển thị các giá trị đo được qua LCD và màn hình nối tiếp.

void setup() { #ifdef serial Serial.begin(9600); #endif lcd.begin(16, 2); pinMode(freqIn, INPUT); pinMode(charge, OUTPUT); pinMode(mode, INPUT_PULLUP); lcd.print(" LC Meter Using "); lcd.setCursor(0, 1); lcd.print(" Arduino "); delay(2000); lcd.clear(); lcd.print("Circuit Digest"); delay(2000); }

Sau đó, trong chức năng vòng lặp , áp dụng một xung của một khoảng thời gian cố định vào mạch LC sẽ sạc mạch LC. Sau khi loại bỏ xung LC mạch bắt đầu cộng hưởng. Sau đó, mình đọc chuyển đổi sóng vuông của nó, đến từ op-amp, bằng cách sử dụng hàm xungIn () và chuyển đổi bằng cách nhân với 2. Ở đây mình cũng đã lấy một số mẫu của điều này. Đó là cách tính tần số :

void loop() { for(int i=0;i<Delay;i++) { digitalWrite(charge, HIGH); delayMicroseconds(100); digitalWrite(charge, LOW); delayMicroseconds(50); double Pulse = pulseIn(freqIn, HIGH, 10000); if (Pulse > 0.1) frequency+= 1.E6 / (2 * Pulse); delay(20); } frequency/=Delay; #ifdef serial Serial.print("frequency:"); Serial.print( frequency ); Serial.print(" Hz "); #endif lcd.setCursor(0, 0); lcd.print("freq:"); lcd.print( frequency ); lcd.print(" Hz ");

Sau khi thấy giá trị tần số, mình đã chuyển đổi chúng thành điện cảm bằng cách sử dụng đoạn mã nhất định

capacitance = 0.1E-6; inductance = (1. / (capacitance * frequency * frequency * 4.*3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print("Ind:"); if(inductance>=1000) { Serial.print( inductance/1000 ); Serial.println(" mH"); } else { Serial.print( inductance ); Serial.println(" uH"); } #endif lcd.setCursor(0, 1); lcd.print("Ind:"); if(inductance>=1000) { lcd.print( inductance/1000 ); lcd.print(" mH "); } else { lcd.print( inductance ); lcd.print(" uH "); } }

Và bằng cách sử dụng mã đã cho, mình đã tính toán điện dung .

if (Bit.flag) { inductance = 1.E-3; capacitance = ((1. / (inductance * frequency * frequency * 4.*3.14159 * 3.14159)) * 1.E9); if((int)capacitance < 0) capacitance=0; #ifdef serial Serial.print("Capacitance:"); Serial.print( capacitance,6); Serial.println(" uF "); #endif lcd.setCursor(0, 1); lcd.print("Cap: "); if(capacitance > 47) { lcd.print( (capacitance/1000)); lcd.print(" uF "); } else { lcd.print(capacitance); lcd.print(" nF "); } }

Vì vậy, đây là cách mình tính toán tần số, điện dung và điện cảm bằng Arduino và hiển thị nó trên màn hình LCD 16×2.

Từ khóa » đo điện áp Arduino