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