Basics PID Control Constant Current Based on Arduino UNO

ทดลองอีกหนึ่งโครงงานกับการควบคุมกระแสให้คงที่ ด้วยการใช้บอร์ด Arduino UNO โดยใช้โปรแกรมควบคุมแบบ PID Control และใช้สัญญาณ PWM ในการปรับค่ากระแสที่ต้องการควบคุมให้คงที่ และรับสัญญาณป้อนกลับ (Feedback signal) อะนาลอกเข้าที่ขา A0 เพื่ออ่านค่าที่เกิดขึ้นในการทำงาน (Process Value : PV) และเปรียบเทียบกับค่าที่กำหนดการทำงานของระบบ (Set Point : SP) ซึ่งจะได้เป็นค่าความผิดพลาด (Error) ให้โปรแกรมสามารถปรับค่าชดเชย (Compensation) ที่เหมาะสมได้อย่างถูกต้อง

จากในรูปมัลติมิเตอร์จะเป็นค่าแรงดันของแหล่งจ่ายไฟเลี้ยงที่ใช้ในการทดสอบเท่ากับ 6.58V ซึ่งจะจ่ายให้กับวงจรตามรูปข้างล่างสุด

เป็นการวัดค่ากระแสที่เกิดขึ้น ซึ่งในที่นี้เราจะกำหนดค่ากระแสที่ต้องการควบคุมไว้ที่ 0.5A และผลที่ได้จากแหล่งจ่ายไฟที่ค่าแรงดัน 6.58V มีค่าเท่ากับ 0.49A

ในรูปออสซิลโลสโคปนี้จะแสดงลักษณะของสัญญาณที่เกิด จากการปรับค่าที่เหมาะสมที่สุดเพื่อให้รักษาปริมาณกระแสที่ต้องการเท่ากับ 0.5A ซึ่งจะมีค่า Ton ค่อนข้างกว้างเกือบ 100%

รูปถัดมาจะเป็นการเพิ่มค่าแรงดันของแหล่งจ่ายไฟเลี้ยงเป็น 10V และทดลองการทำงานของวงจรอีกครั้ง

ปริมาณกระแสที่เกิดขึ้นเมื่อที่แรงดัน 10V เท่ากับ 0.52A ซึ่งมีค่าสูงกว่าค่าที่เราต้องเล็กน้อย (สูงกว่า 0.02A) ถือว่ายังยอมรับได้

รูปลักษณะของสัญญาณที่เกิดขึ้นเมื่อแรงดันเพิ่มขึ้นจะมีค่าดิวตี้ไซเคิลลดลง เมื่อเทียบกับค่าแรงดันของแหล่งจ่ายเท่ากับ 6.58V

ในลักษณะเดียวกันเมื่อทดลองปรับค่าแรงดันของแหล่งจ่ายเพิ่มขึ้น เป็น 15.02V และสังเกตลักษณะการตอบสนองของการทำงาน

ปริมาณกระแสที่เกิดขึ้นเมื่อปรับแรงดันของแหล่งจ่ายไฟเลี้ยงเป็น 15.02V มีค่าเท่ากับ 0.55A

ลักษณะของสัญญาณ PWM จะมีค่าดิวตี้ไซเคิลลดลงอีก เมื่อเทียบกับค่าแรงดันของแหล่งจ่ายที่ผ่านมา และที่แรงดันของแหล่งจ่ายไฟเลี้ยง 20.01V ในรูปถัดไปข้างล่างจะให้ผลการทดลองที่คล้ายกัน

ปริมาณกระแสที่เกิดขึ้นที่ไฟเลี้ยง 20.01V มีค่าเท่ากับ 0.58A

สัญญาณ PWM จะมีค่าดิวตี้ไซเคิลลดลง และค่าความผิดพลาดเพิ่มขึ้นอีกเล็กน้อยเป็น 0.08A

ในรูปจะเป็นการต่อวงจรที่ใช้ในการทดสอบทั้งหมด และต่อเข้าด้วยกันซึ่งช่วงระหว่างการทดลองนั้น ตัวต้านทาน 10 โอห์ม (โหลด) จะค่อนข้างร้อนจึงต้องใช้พัดลมมาเป่าเพื่อระบายความร้อนให้ลดลง

จากรูปข้างบนเป็นลักษณะของการต่อวงจรต่างๆ ที่ใช้ในการทดลองโดยอุปกรณ์ที่จะหน้าที่เป็นสวิตชิ่ง คือเพาเวอร์มอสเฟต STP105N3LL โดยจะสัญญาณควบคุมมาแบบพัลซ์วิดมอดูเลตจากขา 3 และใช้ตัวต้านทาน 1 โอห์ม 1 วัตต์ทำหน้าที่ตรวจจับกระแสที่เกิดขึ้น โดยแรงดันที่ตกคร่อมตัวต้านทานนี้จะผ่านวงจรกรองความถี่ต่ำผ่าน (Low Pass Filter) อีกครั้งก่อนป้อนเข้าที่ขา A0 ซึ่งขานี้จะเป็นขารับสัญญาณป้อนกลับ

จากการทดลองที่ผ่านมานั้นกล่าวโดยสรุปคือ การควบคุมกระแสให้คงที่ด้วยการเขียนโปรแกรม PID Control ให้กับบอร์ด Arduino UNO นั้น โปรแกรมจะพยายามควบคุมค่ากระแสที่เราต้องการ (Set Point) ถึงแม้ว่าแรงดันของแหล่งจ่ายไฟเลี้ยงจะเกิดการเปลี่ยนแปลงก็ตาม (6.58V-20.01V) โดยค่าที่ได้นั้นอาจจะมีค่าความผิดพลาดบ้างเล็กน้อย ซึ่งทั้งนี้ขึ้นอยู่กับเราว่าเหมาะสมที่จะสามารถนำไปประยุกต์ใช้งานได้มากเพียงใด

ข้อมูลเพิ่มเติมและโปรแกรมที่ใช้ในการทดลองดาวน์โหลดได้ที่

  1. https://www.youtube.com/watch?v=vd8ut0kkoyU
  2. https://www.ledsupply.com/blog/constant-current-led-drivers-vs-constant-voltage-led-drivers/
  3. https://www.arrow.com/en/research-and-events/articles/product-roundup-led-power-supply