![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6vK2muhzKRW9dQ-Qew-oLxOX4kkoXCUpgRjzOH4e9D16WjtkWxTcJrixG4IS3mmS8b4u04DBFdj4UsOjkgjdJt-yDy3cAjV2rDBhPZm6DVu9_bQaDhYVkFdagPq8mX2l6eD6AUnnViHEa/s640/9.jpg)
อุปกรณ์ที่ใช้
1. 2WD Smart Car Robot Chassis Kits
2. Arduino UNO R3 - Made in italy
3. L298P Motor Shield Board
4. Jumper (M2M) cable 20cm Male to Male
5. แจ๊กขั้วถ่าน 9 โวลต์ สำหรับ Ardiuno
6. สกรูหัวกลม+น็อตตัวเมีย ยาว 12 มม.
7. รางถ่าน 18650 แบบ 2 ก้อน
8. ถ่านชาร์จ 18650 Panasonic NCR18650B 3.7v จำนวน 2 ก้อน
1. ประกอบหุ่นยนต์
เริ่มต้นด้วยการ ประกอบ 2WD Smart Car Robot Chassis Kits
ใช้ สกรูหัวกลม+น็อตตัวเมีย ยาว 12 มม. ยึด รางถ่านแบบ 18650 และ เชื่อมต่อ สายสีแดง ขั้วบวก เข้าที่ เพาเวอร์สวิตซ์สำหรับเปิดปิด (ON / OFF )
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0AkCG3LTgZve8KXrHh1jWTFCRWZe5c0C9mtorOq0aG5dimbQ-LoatpHccnnzndjchDhL7P8xHDas9IkLcRf0zeae64Smu7s5UF0fo7-i6I_iToW_XDer_4wno5igtZA74zIWQWLthvCLc/s640/3.jpg)
ยึด บอร์ด Arduino UNO R3 เข้ากับโครงหุ่นยนต์
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYq27JlUNw81XFV16s4PALzV6Sdq2C_DIdIEJ6WZNW3Ocu57NEaDe6jYUyb61FiQc4ZLd_v23Qcc6h5K-RTeOBEsxO5Ytxzs924rVtjp1ysa33QQOXqAfiFVMwYGs9xlwoiOGSGh-PRO8k/s640/1.jpg)
เสียบ L298P Motor Shield Board เข้ากับ Arduino UNO R3
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgV2FYZ0teh4P1FrNxh2dde9nfsWDf8IUO21Xm-u8jITglQNZ6Dz-GDymiQNETLJ8l4aQylpd4fb8X9U4EpEohEJAiNUrGstbL7ORQ_occ6d9PlyYrNZ9kC7MKIpWA78QGT-G6Z78xCNlc/s640/2.jpg)
ใช้ จั้มเปอร์ ผู้-ผู้ สีแดง เชื่อมต่อ จาก เพาเวอร์สวิตซ์ ด้านที่เหลือ
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg_xvX49wjyKPM5g5tKbsSpqVR7U4v-mwGToGrGwv6B_o4r60mmyoHULbFjBdpGEP6_dfvtZsdXX6O6iYmXfSMQcNDI1j0vZNhy9Lg-v2yxwP-aRDaSkdyJwMr8CA7bV0XCNHdJuGHbG4T/s640/3.jpg)
ไปยัง ไฟ+ ของ L298P และ ใช้ จั้มเปอร์ ผู้-ผู้ สีดำ เชื่อมต่อจากสายสีดำของรางถ่านไปยัง GND กราวด์ ของ L298P
ใช้ จั้มเปอร์ ผู้-ผู้ 4 เส้น 4 สี เชื่อมต่อ จาก มอเตอร์ A และ B
ไปยัง MOTORA และ MOTORฺB ของ L298P ดังรูป
นำ แจ๊กขั้วถ่าน 9 โวลต์ สำหรับ Ardiuno ตัดส่วนที่เป็นขั้วถ่านออกไป แลัวต่อสายสีแดง เข้ากับ เพาเวอร์สวิตซ์ ด้านที่เหลือ เหมือนกับ L298P และ สายสีดำ เชื่อมต่อกับ สายสีดำของรางถ่าน เหมือนกับ GND ของ L298P ปลายแจ๊กตัวผู้ที่เหลือเสียบเข้ากับ แจ๊กตัวเมีย เพาเวอร์ซัพพลาย ของ Arduino
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmISrV8yzPAtHAjOhZ7eBVMIHgjIM_2Nv1ck3yyuHTvujL-0f3J2vtkna7Tyq0Bm4F61YQpeBZJzNatOSblLlsEuD2TL0sXF5veW8BS0d1pGxim678pUOumJcpqlaglK8yZUUY48gdIjbc/s640/7.jpg)
เก็บรัดสายให้เรียบร้อย
ภาพรวมการต่อ หุ่นยนต์ UNO + L298P
เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3
/*
Robot with Arduino UNO + L298P
For more details visit:
https://robotsiam.blogspot.com/2017/12/uno-l298p.html
*/
/*-------definning Outputs------*/
int MA1 = 12; // Motor A1
int MA2 = 3; // Motor A2
int PWM_A = 10; // Speed Motor A
int MB1 = 13; // Motor B1
int MB2 = 8; // Motor B2
int PWM_B = 11; // Speed Motor B
int SPEED = 200; // Speed PWM สามารถปรับความเร็วได้ถึง 0 - 255
void setup() {
//Setup Channel A
pinMode(12, OUTPUT); //Motor A1
pinMode(3, OUTPUT); //Motor A2
pinMode(10, OUTPUT); //Speed PWM Motor A
//Setup Channel B
pinMode(13, OUTPUT); //Motor B1
pinMode(8, OUTPUT); //Motor B2
pinMode(11, OUTPUT); //Speed PWM Motor B
}
void loop() {
Stop(2000);
Forward(400);
Stop(200);
Backward(400);
Stop(200);
turnLeft(300);
Stop(200);
turnRight(400);
}
void Forward(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, HIGH);
analogWrite(PWM_A, SPEED);
digitalWrite(MB1, HIGH);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, SPEED);
delay(time);
}
void Backward(int time)
{
digitalWrite(MA1, HIGH);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, SPEED);
digitalWrite(MB1, LOW);
digitalWrite(MB2, HIGH);
analogWrite(PWM_B, SPEED);
delay(time);
}
void turnLeft(int time)
{
digitalWrite(MA1, HIGH);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, SPEED);
digitalWrite(MB1, LOW);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, 0);
delay(time);
}
void turnRight(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, 0);
digitalWrite(MB1, LOW);
digitalWrite(MB2, HIGH);
analogWrite(PWM_B, SPEED);
delay(time);
}
void Stop(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, 0);
digitalWrite(MB1, LOW);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, 0);
delay(time);
}
ไปที่ Tools > Port แล้วเลือกพอร์ตที่ปรากฏ (กรณีใช้เครื่องคอมพิวเตอร์ที่มี COM Port มากกว่าหนึ่ง ให้เลือกตัวอื่นที่ไม่ใช่ COM1)
ในตัวอย่างเลือกเป็น "COM14"
(ถ้ายังว่าง หรือ เป็น COM1 ให้ตรวจสอบการติดตั้งไดร์เวอร์ การต่อสาย USB ของ Arduino UNO)
กดปุ่ม
![](https://cz.lnwfile.com/_/cz/_raw/qw/6x/4y.png)
หากสามารถอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จ จะแสดงคำว่า Done uploading. ที่แถบด้านล่าง
3. ทดสอบการทำงาน
ใส่ถ่าน แบบ 18650 จำนวน 2 ก้อน เข้าที่รางถ่าน เปิดเพาเวอร์สวิตซ์สำหรับเปิดปิด (ON / OFF ) ถ้าการต่อหุ่นยนต์ถูกต้อง หุ่นยนต์ จะ เดินหน้า-ถอยหลัง-เลี้ยวซ้าย และ เลี้ยวขวา ตาม วีดีโอผลลัพธ์การทำงานของ ทดสอบการเคลื่อนที่ของหุ่นยนต์ UNO + L298P
วีดีโอผลลัพธ์การทำงานของ ทดสอบการเคลื่อนที่ของหุ่นยนต์ UNO + L298P