ฟังก์ชันการวัดความจุไฟฟ้านี่นะน้อง มักจะมีแต่ในมัลติมิเตอร์ราคาแพงๆ เท่านั้นแหละ เลยเป็นไอเดียเจ๋งๆ ที่เราจะทำเครื่องวัดนี้ขึ้นมาใช้เอง โดยเฉพาะถ้ามันทำง่ายโคตรๆ และต้นทุนถูกอีกต่างหาก
และเจ้าเครื่องที่พี่จะอธิบายต่อไปนี้แหละ ที่ตอบโจทย์ทุกอย่างเป๊ะๆ ค่าที่วัดได้จะแสดงบนจอใหญ่ อ่านง่ายชัดเจน และช่วงการวัดก็กว้างตั้งแต่ 1 pF ไปจนถึง 99 µF ซึ่งก็คือช่วงค่าที่เราใช้กันบ่อยที่สุดนั่นเอง
ที่บอกว่าทำเครื่องวัดความจุนี้ได้ด้วยแค่ชิ้นส่วนสองอย่างเนี่ย ฟังดูเหลือเชื่อแต่จริงๆ นะน้อง! นั่นก็คือบอร์ดไมโครคอนโทรลเลอร์ กับจอ LCD

สำหรับโปรเจกต์นี้พี่เลือกใช้บอร์ด Arduino Nano กับจอ LCD 128x64 จุด ที่ใช้ไดรเวอร์ชิป ST7565 นะ


หลักการวัดของมันคือ เราจะชาร์จตัวเก็บประจุ (Capacitor) ที่ต้องการวัดด้วยกระแสจากตัวต้านทาน PULLUP ของพินอินพุตไมโครโพรเซสเซอร์ แล้วจับเวลาชาร์จที่ใช้ไป ตัวเก็บประจุที่เราต้องการวัดจะถูกต่อเข้ากับพินแอนะล็อกหนึ่งพินและพินดิจิตอลหนึ่งพินของไมโครคอนโทรลเลอร์ ถ้าเป็นตัวเก็บประจุแบบมีขั้ว (Polarized) ขั้วบวกให้ต่อกับพินแรกที่กำหนดไว้ในโค้ด
ความง่ายของอุปกรณ์ชิ้นนี้ อยู่ที่ไลบรารี "capacitor" สำหรับ Arduino ที่เขียนขึ้นมาเฉพาะทางเลย ซึ่งพี่แนะนำให้โหลดมาใช้ได้เลย
ฟิสิกส์เบื้องหลังค่าคงที่เวลา (Tau)
การทดสอบตัวเก็บประจุมันไม่ได้วัดค่าได้ในทันทีหรอกน้อง
- ตัวเก็บประจุจะค่อยๆ ชาร์จประจุ เหมือนถังน้ำที่ค่อยๆ เติม ถ้าเราให้แรงดันไฟฟ้าผ่านตัวต้านทานค่าหนึ่ง มันก็จะชาร์จช้าๆ
- กฎทางคณิตศาสตร์บอกไว้ว่า: เวลาที่ตัวเก็บประจุใช้เพื่อไปถึง 63.2% ของแรงดันไฟฟ้าสูงสุด นั้น เท่ากับ
ความต้านทาน x ความจุไฟฟ้าพอดี - ถ้าเรารู้ค่าความต้านทาน (Resistance) แม่นๆ และให้ Arduino จับเวลา (Time) ที่ใช้เพื่อไปถึง 63.2% ของแรงดัน... เราก็สามารถแก้สมการหาค่าความจุไฟฟ้า (Capacitance) ออกมาได้แล้วไง! ง่ายๆ แบบคณิตศาสตร์ม.ต้นเลย
การทำงานของ Arduino
- Arduino สั่ง
digitalWrite(chargePin, HIGH). - มันจะเริ่มจับเวลา
micros()ทันทีเลย - จากนั้นก็อ่านค่าจากขาแอนะล็อกที่ต่อกับตัวเก็บประจุแบบเร็วสุดๆ:
while(analogRead(A0) < 648) { }(648 คือ 63.2% ของ 1023 นะตัวนี้) - ทันทีที่ลูปนี้หลุดออกมา มันก็จะเช็คเวลาที่จับไว้ แล้วก็คำนวณสมการ
C = T/Rแล้วส่งค่าออกมาเลย! ง่ายมั้ยล่ะ
ฟีเจอร์ Autorange
ตัวต้านทาน 10,000 โอห์ม จะชาร์จตัวเก็บประจุ 100uF ได้พอดีเป๊ะ แต่ถ้าเอาไปชาร์จตัวเก็บประจุจิ๋ว 10pF ล่ะก็ มันจะเร็วจน Arduino จับเวลาไม่ทันเลย
- Autorange: วงจรนี้ใช้ขาต่างๆ ที่ต่อกับตัวต้านทานค่าต่างกัน (เช่น 1M โอห์ม, 10K โอห์ม, 220 โอห์ม)
- โค้ดจะลองใช้ตัวต้านทานค่าสูงก่อน ถ้ามันชาร์จช้าเกินไป มันก็จะสลับขาไปเรื่อยๆ จนกว่าจะเจอความเร็วชาร์จที่พอดีเป๊ะ! ฉลาดสุดๆ

มาดูกันดีกว่าว่าเครื่องมือเจ๋งๆ ตัวนี้ทำงานยังไงในโลกจริงบ้าง สำหรับการทดสอบนี้พี่จะใช้ตัวเก็บประจุหลายแบบ ค่าต่างกัน เริ่มแรกที่หน้าจอจะแสดงค่าประมาณ 1 pF ซึ่งจริงๆ แล้วคือความจุระหว่างสายไฟกับขาต่อ ซึ่งน้อยมากและไม่ส่งผลต่อการวัดค่า

จากที่เห็นในภาพ ความแม่นยำและความเร็วในการวัดก็ใช้ได้เลยทีเดียว
และสุดท้ายก็สรุปสั้นๆ ง่ายๆ นี่คือเครื่องวัดความจุแบบสแตนด์อโลนที่เรียบง่ายที่สุดเท่าที่จะทำได้ โดยใช้อุปกรณ์อิเล็กทรอนิกส์แค่สองชิ้นเท่านั้น หรือจะง่ายกว่านั้นอีก ถ้าน้องใช้มันบนคอมพีซี ก็แค่ใช้ไมโครคอนโทรลเลอร์ตัวเดียว แล้วอ่านผลจาก Serial Monitor ใน Arduino IDE ได้เลย แน่นอนว่าถ้าจะให้ดีควรใส่ลงในกล่องที่เหมาะสมพร้อมช่องเสียบ จะได้วัดค่าได้สะดวกขึ้น งานนี้จัดไปวัยรุ่น! สู้งานนะน้อง