| // Motor A |
| int dir1PinA = 8; // กำหนดชื่อ = พอร์ตที่จะใช้ (สามารถใช้พอร์ตอื่นที่มีที่ว่างบนบร์อดได้) |
|
| int dir2PinA = 7; // กำหนดชื่อ = พอร์ตที่จะใช้ (สามารถใช้พอร์ตอื่นที่มีที่ว่างบนบร์อดได้) |
|
| int speedPinA = 6; // เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์ ขาที่จะสามารถกำหนด PWM ได้ต้องมีสัญลักษณ์ตัวหนอน (~) บนบอร์ดเท่านั้น |
|
|
| // Motor B |
|
| int dir1PinB = 2; // กำหนดชื่อ = พอร์ตที่จะใช้ (สามารถใช้พอร์ตอื่นที่มีที่ว่างบนบร์อดได้) |
|
| int dir2PinB = 4; // กำหนดชื่อ = พอร์ตที่จะใช้ (สามารถใช้พอร์ตอื่นที่มีที่ว่างบนบร์อดได้) |
|
| int speedPinB = 3; // เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์ ขาที่จะสามารถกำหนด PWM ได้ต้องมีสัญลักษณ์ตัวหนอน (~) บนบอร์ดเท่านั้น |
|
|
| void setup() |
| { |
| Serial.begin(9600); |
|
| //กำหนด ขา เป็น Output เพื่อส่งออกข้อมูลไปสั่งงาน L298N |
|
| pinMode(dir1PinA,OUTPUT); // กำหนดขา 8 เป็น Output หมายถึง กำหนดขา 8 เป็นขาส่งสัญญาณออก |
|
| pinMode(dir2PinA,OUTPUT); // กำหนดขา 7 เป็น Output หมายถึง กำหนดขา 7 เป็นขาส่งสัญญาณออก |
|
| pinMode(speedPinA,OUTPUT); // กำหนดขา 6 เป็น Output หมายถึง กำหนดขา 6 เป็นขาส่งสัญญาณออก |
|
| pinMode(dir1PinB,OUTPUT); // กำหนดขา 2 เป็น Output หมายถึง กำหนดขา 8 เป็นขาส่งสัญญาณออก |
|
| pinMode(dir2PinB,OUTPUT); // กำหนดขา 4 เป็น Output หมายถึง กำหนดขา 8 เป็นขาส่งสัญญาณออก |
|
| pinMode(speedPinB,OUTPUT); // กำหนดขา 6 เป็น Output หมายถึง กำหนดขา 8 เป็นขาส่งสัญญาณออก |
| } |
|
| void loop() |
| { |
|
| // ชุด Motor A |
|
| analogWrite(speedPinA, 255); //ตั้งค่าความเร็ว PWM (0-255)ค่าต่ำลง มอเตอร์จะหมุนช้าลง |
|
| digitalWrite(dir1PinA, LOW); // สามารถสลับ HIGH,LOW ได้ เพื่อเปลี่ยนทิศทางการหมุนของมอเตอร์ |
|
| digitalWrite(dir2PinA, HIGH); // กรณี เมื่อเปรียบ HIGH=1,LOW,0 เมื่อสั่ง 1-0 มอเตอร์อาจหมุนซ้าย เมื่อสั่ง 0-1 มอเตอร์หมุนขวา เมื่อสั่ง 1-1 จะเกิดสถานะเบรค เมื่อสั่ง 0-0 จะเป็นการสั่งเพื่อปล่อยไหลตัว |
|
|
|
| // ชุด Motor B |
|
| analogWrite(speedPinB, 255); //ตั้งค่าความเร็ว PWM (0-255)ค่าต่ำลง มอเตอร์จะหมุนช้าลง |
|
| digitalWrite(dir1PinB, LOW); // สามารถสลับ HIGH,LOW ได้ เพื่อเปลี่ยนทิศทางการหมุนของมอเตอร์ |
|
| digitalWrite(dir2PinB, HIGH); // กรณี เมื่อเปรียบ HIGH=1,LOW,0 เมื่อสั่ง 1-0 มอเตอร์อาจหมุนซ้าย เมื่อสั่ง 0-1 มอเตอร์หมุนขวา เมื่อสั่ง 1-1 จะเกิดสถานะเบรค เมื่อสั่ง 0-0 จะเป็นการสั่งเพื่อปล่อยไหลตัว |
| } |