Lesson 06 : หมุนมอเตอร์กันเถอะ

ในบทเรียนนี้จะสอนให้น้องๆ เรียนรู้การประกาศฟังก์ชันใช้งานเอง โดยสั่งให้มอเตอร์ทำงาน หมุนตามที่เราต้องการนะครับ

ระดับความยาก :  

สิ่งที่ต้องทราบก่อนเริ่มเรียน

สิ่งที่จะได้จากบทเรียนนี้

อุปกรณ์
ลำดับ ชิ้นส่วน จำนวน
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 นะครับ