ตัวอย่างโปรแกรมควบคุมความเร็วมอเตอร์ด้วยชุด MDR-10RF

ตัวอย่างการเขียนโปรแกรมควบคุมความเร็วมอเตอร์กระแสตรง หรือ DC Motor โดยใช้ไมโครคอนโทรลเลอร์ตระกูล MCS51 แบบดั่งเดิม เป็นตัวอย่างการเขียนโค็ดที่ไม่มีไลบรารี่ เพื่อให้เข้าใจในหลัการสร้างสัญญาณ PWM ด้วยซอฟแวร์ ซึ่งเป็นส่วนสำคัญหลักของการควบคุมนี้

MDR-10RF Demo

อุปกรณ์ประกอบการทดลอง

No รายการ จำนวน
1 MDR-10RF , ชุดขับไดร์ DC Motor , https://www.micro-research.co.th/mdr-10rf-series.html 1
2 RBC-51 , บอร์ดไมโครคอนโทรลเลอร์ MCS51 , https://www.micro-research.co.th/rbc-51.html 1
3 MCS51 Loader , ชุดดาวโหลดโปรแกรมลงชิพไมโครคอนโทรลเลอร์, https://www.micro-research.co.th/mcs51-isp-programmer.html 1
4 WII-20 , สายต่อทดลอง , https://www.micro-research.co.th/wii-20.html 4
5 DC Motor 1

Hardware Connection<

Pin Mode Description
P2.4 Input สวิทช์ START ภายในบอร์ดไมโครคอนโทรลเลอร์
P2.5 Input สวิทช์ STOP ภายในบอร์ดไมโครคอนโทรลเลอร์
P1.4 Output DIR , สัญญาณเอาต์พุตควบคุมทิศทางการหมุนของมอเตอร์
P1.5 Output PWM , สัญญาณเอาต์พุตควบคุมความเร็วการหมุนมอเตอร์
MDR-10RF Wiring
MDR-10RF Wiring

แนวคิดการเขียนโปรแกรม
โดยอาศัย Timer interrupt สร้างฐานเวลาเพื่อเพิ่มค่าให้กับตัวแปรนับ Pulse_Counter ในทุกๆครั้งที่เกิด Interrupt และเปรียบเทียบค่ากับตัวแปร Set_Pulse_Width ซึ่งเป็นตัวแปรกำหนดความกว้างของพัลล์ที่ต้องการ มีค่าตั้งปต่ 0-255 หรือเทียบได้กับ 0-100% pulse width การควบคุมใช้การตรวจสอบการกดสวิทช์ เพื่อกำหนดค่าทิศทางการหมุน (DIR_FORWARD / DIR_REVERSE) และกำหนดค่า PWM ให้กับตัวแปร Set_Pulse_Width ดังนี้

VDO ทดสอบการทำงานของโปรแกรม

 

Leave a Reply

Your email address will not be published. Required fields are marked *