Lesson 06 : หมุนมอเตอร์กันเถอะ
ในบทเรียนนี้จะสอนให้น้องๆ เรียนรู้การประกาศฟังก์ชันใช้งานเอง โดยสั่งให้มอเตอร์ทำงาน หมุนตามที่เราต้องการนะครับ
ระดับความยาก :
สิ่งที่ต้องทราบก่อนเริ่มเรียน
- การใช้งานโปรแกรม Arduino IDE
- ผ่านบนเรียน Lesson 01
- ผ่านบนเรียน Lesson 02
สิ่งที่จะได้จากบทเรียนนี้
- สั่งให้มอเตอร์ทำงานได้
- เพิ่มทักษะการเขียนโปรแกรมที่ซับซ้อนขึ้น เรียนรู้การประกาศฟังก์ชันของเราเอง
- ทักษะการใช้งานโปรแกรม Arduino IDE เบื้องต้น
ลำดับ | ชิ้นส่วน | จำนวน |
---|---|---|
1 | Board Arduino UNO | 1 ชิ้น |
2 | สาย Jump ผู้ – เมีย | 6 เส้น |
3 | Stepper Motor 28BYJ-48 With Drive Test Module Board ULN2003 5 Line 4 Phase 5V | 1 ชุด |
ให้ต่ออุปกรณ์ดังรูปต่อไปนี้
Coding กันเลย
เปิดโปรแกรม Arduino และ New File ขึ้นมาดังภาพที่ 1
ภาพที่ 1 แสดงการสร้างไฟล์ใหม่
พิมพ์ code ตามภาพที่ 2 (download code here) จากนั้นกดปุ่มบันทึกและตั้งชื่อตามที่ต้องการ
* @desc Class นี้ใช้สำหรับเรียนรู้การทำงานเบื้องต้นของ Arduino, Stepper Motor 28BYJ-48 With Drive Test Module Board ULN2003 5 Line 4 Phase 5V
* @author Prayoon V.,
* Email : themakerthailand@hotmail.com
* Facebook : @MrMakerThailand
*/#define motorPin1 8
#define motorPin2 9
#define motorPin3 10
#define motorPin4 11
void setup() {
//กำหนด PIN สำหรับส่งสัญญาณออก
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
/**
* @Function : Motor_CCW
* @Desc : Function สำหรับสั่งให้ Motor หมุนทวนเข็มนาฬิกา
*/
void Motor_CCW()
{
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(1150);
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
}
/**
* @Function : Motor_CW
* @Desc : Function สำหรับสั่งให้ Motor หมุนตามเข็มนาฬิกา
*/
void Motor_CW()
{
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(1150);
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(1150);
}
void loop(){
//สั่งให้ Motor หมุนตามเข็มนาฬิกา
for(int i = 0; i < 535; i++)
Motor_CW();
//สั่งให้ Motor หมุนทวนเข็มนาฬิกา
for(int i = 0; i < 535; i++)
Motor_CCW();
}
ภาพที่ 2 แสดง Sourcecode
ภาพที่ 3 แสดงการบันทึก
สั่ง Compile code โดยใช้คลิกที่ปุ่ม Verify ตามภาพที่ 4
ภาพที่ 4 แสดงการ Verify และ Compile Sourcecode
สั่ง Deploy code ไปที่ Board Arduino ตามภาพที่ 5
ภาพที่ 5 แสดงการ Upload Program ไปที่ Board Arduino
ดูผลลัพธ์จะเห็นมอเตอร์หมุนตามเข็มนาฬิกา 1 รอบและทวนเข็มนาฬิกา 1 รอบ ดัง Video นี้ครับ
ภาพที่ 6 แสดง Video ผลการหมุนมอเตอร์
!!!สำเร็จแล้ว!!!
Share ผลงาน
เมื่อน้อง ๆ ทำสำเร็จแล้วอย่าลืมแชร์ให้เพื่อนๆ ดูได้ที่ Facebook MrMakerThailand
และหากน้อง ๆ ทำไม่ได้ ให้ติดต่อมาได้ตลอดเวลาที่ Inbox นะครับ