26 มีนาคม 2555

23 มีนาคม 2555(PWM arduno)

วันนี้ไม่ค่อยได้ทำอะไรเป็นชิ้นเป็นอันเลยจะเอาเรื่องบอร์ดควบคุมมอเตอร์ที่ผมจะใช้ควบคุมรถในโครงงาน
โดยต้องทำความเข้าใจกันก่อน มอเตอร์ ที่ว่านี้เป็นมอเตอร์ใช้ไฟฟ้ากระแสตรงที่เราใช้งานกันทั่วไป(มอเตอร์ขนาดเล็กใช้กับรถบังคับ)
หลักการที่ผมใช้ในการควบคุมคือ มอเตอร์จะทำงานอย่างไรขึ้นกับกระแสไฟฟ้าที่ไหลเข้ามอเตอร์ ซึ่งถูกควบคุมด้วยบอร์ดขับมอเตอร์ ในโครงงานนี้ผมใช้บอร์ดของ inex รุ่น zx-motor3a
มีdatasheet http://www.inexglobal.com/downloads/zx-motor3a_e.pdf
หลังจากอ่านdataseetแล้วเราก็ได้คุณสมบัติของบอร์ดดังนี้
ขับมอเตอร์ได้2ตัว
กระแสสูงสุดที่รับได้ 3 A
ควบคุมมอเตอร์ด้วยสายสัญญาน3สาย
supply 9-24v
ขาที่ควบคุม
A,Bเป็นทิศทาง
Gเป็น gnd หรือ pwm ได้

เมื่อรู้ขาที่ต้องใช้ควบคุมแล้วเราจะออกแบบให้ บอร์ด arduno ควบคุม 3 ขาได้แก่ทิศทาง2และpwmอีก1
โดยทิศทางทั้งสองเราจะต้องมี port digital 2 port มาควบคุมโดยเราดูทิศทางได้จากdatasheet
ผมจังกำหนดขาของ digital port คือ(ไม่ทำอย่างนี้ก็ได้แต่จะสับสนเวลาใช้งาน)
ในตัวอย่างใช้ port 22,23
int m1D1=22;      int m1D2=23;

หลังจากนั้นในส่วน void setup()ก็กำหนดโหมดของ PIN pinMode
port 22,23  โหมด output
pinMode(m1D1,OUTPUT);
pinMode(m1D2,OUTPUT);
เมื่อเรียกใช้งาน digital port ก็ใช้คำสั่ง digitalWrite
ตัวอย่างport 22ให้ logic 0

digitalWrite(m1D1,LOW);

ส่วน pwm คือการควบคุมความเร็วของมอเตอร์ด้วยความถี่ และ dutycycle
โดย arduno ใช้คำสั่ง analogwrite เป็นตัวควบคุมความเร็วในอีกขานังของ บอร์ด
ตัวอย่างการใช้งาน
ส่วนประกาศว่าเลือกใช้ digital port 8
pwm2=8;
ส่วนที่ให้ค่าoutputควบคุมความเร็วมอเตอร์โดยค่า255นี้เป็นค่าต่ำสุด
analogWrite(pwm2, 255); 

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

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