Simple and Low Cost Inductance Meter by Using Arduino UNO

โครงงานเล็กๆ อีกหนึ่งตัว สำหรับเป็นเครื่องมือให้กับการทดลองวงจรสวิตชิ่ง เพาเวอร์ซัพพลาย หรือวงจรคอนเวอร์เตอร์ต่างๆ ที่จะต้องเกี่ยวข้องกับการใช้ตัวเหนี่ยวนำในภาคการทำงานแต่ละส่วน ด้วยโครงงานเครื่องวัดค่าความเหนี่ยวนำอย่างง่ายและราคาประหยัด รวมทั้งใช้อุปกรณ์น้อย ซึ่งดัวโครงงานนี้จะใช้บอร์ดควบคุม Arduino UNO ในการประมวลผล และใช้ออปแอมป์ในการตรวจจับสัญญาณความถี่เรโซแนนท์ (Resonant Circuit) สำหรับส่งค่าสัญญาณให้บอร์ดประมวลผลประเมินค่าความเหนี่ยวนำที่ต้องการวัดค่า โดยให้การวัดค่าแล้วนำไปแสดงผลบนจอคอมพิวเตอร์ (PC) หรือโน๊ตบุก (Notebook) เพื่อลดค่าใช้จ่ายออกไป แต่สามารถนำจอแสดงผลอื่นมาต่อร่วมเพื่อใช้งานเพิ่มเติมภายหลังได้



ในรูปที่ 1 ถึงรูปที่ 3 แสดงการเตรียมอุปกรณ์ต่างๆ สำหรับประกอบโครงงาน โดยตัววงจรนี้จะเป็นวงจรเล็กๆ ที่สามารถประกอบและทดลองบนแผ่นเบรดบอร์ด (Breadboard) ได้สะดวก ซึ่งจะช่วยให้ง่ายต่อการเปลี่ยนอุปกรณ์ต่างๆ เมื่อต้องการปรับแต่งการทำงานใหม่ โดยลักษณะของการทดลองจะใช้ดิจิตอลออสซิลโลสโคปช่วยวัดสัญญาณ เพื่อสังเกตการทำงานในเรื่องของวงจรเรโซแนนท์และเข้าใจการทำงานของวงจรที่เกิดขึ้น
/* Code Arduino inductance meter Ref. 1. https://www.hackster.io/sainisagar7294/how-to-make-inductance-meter-using-arduino-b9cb20 2. https://electronoobs.com/eng_arduino_tut10_3.php 3. https://www.instructables.com/Inductance-Meter-Using-Arduino/ 4. https://create.arduino.cc/projecthub/sainisagar7294/how-to-make-inductance-meter-using-arduino-b9cb20 */ // D11 is the input to the circuit (connects to 150ohm resistor), D13 is the comparator/op-amp output. double pulse, frequency, capacitance, inductance; void setup(){ Serial.begin(9600); Serial.println(" Start inductance meter "); pinMode(11, INPUT); pinMode(13, OUTPUT); delay(500); } void loop(){ digitalWrite(13, HIGH); delay(5); // give some time to charge inductor. digitalWrite(13,LOW); delayMicroseconds(100); // make sure resination is measured pulse = pulseIn(11,HIGH,5000); //returns 0 if timeout if(pulse > 0.1){ // if a timeout did not occur and it took a reading: // #Error insert your used capacitance value here. Currently using 2uF. Delete this line after that // capacitance = 2.E-6; // Currently using 2uF capacitance = 1.E-6; // Currently using 1uF frequency = 1.E6/(2*pulse); inductance = 1./(capacitance*frequency*frequency*4.*3.14159*3.14159); //one of my profs told me just do squares like this inductance *= 1E6; // note that this is the same as saying inductance = inductance*1E6 // Display on Serial Monitor Serial.print(" High for : "); Serial.print(pulse); Serial.print(" uS, "); Serial.print("frequency : "); Serial.print(frequency); Serial.print(" Hz, "); Serial.print("inductance : "); Serial.print(inductance); Serial.println(" uH"); delay(100); } }
สำหรับโปรแกรมการทำงานที่แสดงข้างบนนี้ แอดมินได้ปรับบางส่วนจากโปรแกรมอ้างอิงต้นฉบับเดิมเล็กน้อย (เว็บไซต์อ้างอิงจะอยู่ส่วนหัวโปรแกรม) โดยรายละเอียดของการประมวลผลจะอยู่ที่บรรทัด inductance = 1./(capacitance*frequency*frequency*4.*3.14159*3.14159); เพื่อให้ได้ค่าความเหนี่ยวนำที่ต้องการวัด และผู้อ่านสามารถศึกษาเนื้อหาตามที่อ้างอิงท้ายโครงงานนี้ครับ

รูปที่ 4 เป็นการนำตัวเหนี่ยวนำที่ระบุค่าเอาไว้ เพื่อนำมาเป็นตัวอ้างอิงในการทดลอง ซึ่งจากในรูปจะมีค่าเท่ากับ 22uH ที่อัตราการใช้กระแส 5A และค่าความต้านทานแฝงภายในที่ 0.015 โอห์ม



สำหรับในรูปที่ 5 ถึงรูปที่ 7 จะเป็นการทดลองที่ 1 โดยการวัดค่าตัวเหนี่ยวนำที่ทราบค่า (22uH) และเป็นการตรวจสอบผลการทำงานของโครงงาน ซึ่งในการทดลองจะเห็นลักษณะของสัญญาณที่เกิดขึ้นจากออสซิลโลสโคป และผลที่ได้จากการวัดค่าที่แสดงที่หน้าจอ Serial monitor ในโปรแกรม Arduino IDE และค่าที่วัดได้เท่ากับ 22.80uH



ในรูปที่ 8 ถึงรูปที่ 10 เป็นการทดลองที่ 2 โดยการทดลองนี้จะใช้ตัวเหนี่ยวนำที่มีขนาดใหญ่และจำนวนรอบพันในแกนเพิ่มขึ้นและสังเกตการทำงาน และค่าต่าที่ได้จากการวัดเท่ากับ 2659.08uH หรือเท่ากับ 2.659mH สำหรับในการทดลองนี้ ค่าความเหนี่ยวนำที่ได้จะมีค่ามากกว่าการทดลองที่ 1 มากๆ



ในรูปที่ 11 ถึงรูปที่ 13 เป็นการทดลองที่ 3 ซึ่งจะทดลองวัดค่าตัวเหนี่ยวนำ ที่มีค่าน้อยกว่าการทดลองที่ 1 มากๆ อีกแบบหนึ่งทั้งนี้เพื่อ เพื่อประเมินย่านวัดค่าความเหนี่ยวนำให้กับโครงงานที่จะนำมาวัด โดยค่าที่วัดได้เท่ากับ 4.96uH ซึ่งจากการทดลองตัวโครงงานสามารถวัดค่าได้ในช่วง 5uH-2.5mH ได้ดี แต่สามารถปรับย่านการทำงานเพิ่มเติมได้ตามต้องการ โดยวิธีปรับนั้นแนะนำให้อ่านเนื้อหาตามที่อ้างอิงท้ายโครงงาน

วงจรของโครงงานแสดงในรูปที่ 14 ประกอบด้วยกัน 3 ส่วนคือ ส่วนแรกเป็นบอร์ดประมวลผล Arduino UNO จะทำหน้าที่ประมวลผลสัญญาณและส่งผลที่ได้ไปแสดงที่จอคอมพิวเตอร์ ส่วนที่สอง จอแสดงผลทำหน้าที่แสดงค่าตัวเหนี่ยวนำที่ได้ พร้อมทั้งคาบเวลาที่ได้และความถี่ที่เกิดขึ้นสำหรับเป็นข้อมูลเพิ่มเติม และส่วนที่สาม วงจรออปแอมป์ (LM339N) ทำหน้าที่ตรวจจับสัญญาณที่เกิดขึ้นจากวงจรเรโซแนนท์ซึ่งอยู่ในลักษณะของไซน์เวฟ และเปลี่ยนให้เป็นสัญญาณพัลซ์เพื่อให้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO สามารถประมวลผลให้ได้ค่าความเหนี่ยวนำที่ต้องการวัดค่า


กับโครงงานเล็กๆ ตัวนี้คงใช้เวลาในการสร้างไม่นานนัก แต่สามารถนำไปใช้งานที่เกี่ยวกับการทดลองแหล่งจ่ายไฟเลี้ยงแบบสวิตชิ่งต่างๆ ได้หลายรูปแบบหรือวงจรคอนเวอร์เตอร์ เป็นต้น โดยจากการทดลองจะเห็นว่าตัวโครงงานสามารถวัดค่าความเหนี่ยวนำได้ในช่วง 5uH-2.5mH ซึ่งเป็นการออกแบบวงจรสวิตชิ่งทั่วไป ส่วนหนึ่งสำหรับโครงงานนี้คือ เป็นการใช้วงจรที่เรียบง่าย ราคาประหยัด ในการสร้างเครื่องมือไว้ใช้งานอีกแบบหนึ่งครับ.
Reference
- https://electronoobs.com/eng_arduino_tut10_3.php
- https://create.arduino.cc/projecthub/sainisagar7294/how-to-make-inductance-meter-using-arduino-b9cb20
- https://zenodo.org/record/2598878/files/%281-4%29DESIGN%20OF%20LC%20METER%20USING%20ARDUINO-format.pdf
- https://www.edabbles.com/2020/06/16/measuring-inductance-with-arduino-nano/
- https://circuitdigest.com/microcontroller-projects/arduino-lc-meter-measure-inductance
- https://www.instructables.com/Inductance-Meter-Using-Arduino/
- https://www.hackster.io/sainisagar7294/how-to-make-inductance-meter-using-arduino-b9cb20
- https://www.radiolocman.com/shem/schematics.html?di=162628
- https://www.researchgate.net/publication/323210258_Pneumatic_Muscle_With_Smart_Braid_Used_in_Orthosis
- https://create.arduino.cc/projecthub/osman_cyp/lcr-meter-ffcc38?ref=user&ref_id=1929905&offset=0