วันเสาร์ที่ 25 เมษายน พ.ศ. 2558

Microcontroller Ep.5 : PWM with arduino

- Microcontroller Ep.5 -

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


DC motor speed vs Applied Voltage

                               ซึ่งการควบคุมความเร็วของดีซีมอเตอร์นั้นเราจะใช้เทคนิคที่เรียกว่า "พัลส์วิดท์มอดูเลชั่น" (Pulse Width Modulation) หรือที่นิยมเรียกกันทั่วไปว่า PWM ซึ่งเทคนิคนี้เราจะใช้การควบคุมความกว้างของพัลล์เพื่อใช้ในการเปลี่ยนแปลงระดับแรงดันที่ป้อนให้กับดีซีมอเตอร์




                        การสร้างพัลส์วิดท์มอดูเลชั่นด้วย Arduino นั้นจะสามารถสร้างจากพอร์ท 3 ,5 ,6 ,9 ,10 และ 11  ด้วยการใช้คำสั่ง 
int pulsePin = 9;
int duty = 127; 

analogWrite( pulsePin, duty );

     คำสั่ง
  1. int pulsePin = 9;  ใช้กำหนดขาที่จะสร้างพัลส์วิดท์มอดูเลชั่น
  2. int duty = 127;   ใช้ในการกำหนดความกว้างของพัลส์ซึ่งมีค่าตั้งแต่ 0 -255 คิดเป็น 0% ~ 100%
  3. analogWrite( pulsePin, duty ); ใช้ในการสั่งให้สร้างพัลส์วิดท์มอดูเลชั่น
การสร้างพัลส์วิดท์มอดูเลชั่นนั้นไม่จำเป็นต้องใช้คำสั่ง pinMode() ในการกำหนดโหมดของพอร์ทที่ใช้


                   






ไม่มีความคิดเห็น:

แสดงความคิดเห็น