A4988 Stepper Motor Driver Module

A4988 เป็นโมดูลบอร์ด สำหรับควบคุม Stepper Motor โดยเฉพาะ และเป็นโมดูลที่ได้รับความนิยมสูงอีกด้วย สามารถควบคุม Stepper Motor แบบ Bipolar ซึ่งเป็น Stepper แบบพื้นฐานที่ได้รับความนิยมสูงเช่นเดียวกัน สามารถนำไปประยุกต์ใช้ได้หลากหลายรูปแบบเช่น งานหุ่นยนต์ เครื่อง CNC หรือ 3D Printer เป็นต้น ส่วน Stepper Motor ที่ใช้แรงดันต่ำกว่า 8 V ก็สามารถใช้ A4988 ได้เช่นกัน โดยตัวโมดูลจะทำหน้าที่ปรับแรงดันให้กับมอเตอร์ ตามความเหมาะสม โดยอ้างอิงจากการปรับ Current Limit เพื่อให้มอเตอร์ได้รับแรงดันที่ไม่มากจนเกินไป

สเปค

  • โมดูล A4988 ควบคุม Stepper Motor
  • ใช้กับ Stepper แบบ Bipolar ทั่วไป
  • ขับกระแสสูงสุด 2 A (ต้องติด Heatsink)
  • แรงดันขับมอเตอร์ 8 – 35 V
  • แรงดันทำงาน 3 – 5.5 V
  • กำหนดกระแสสูงสุดได้ (Current Limit)
  • ความละเอียด (Step Resolution)  Full, 1/2, 1/4, 1/8, and 1/16
  • ขนาด 0.6″ x 0.8″
  • น้ำหนัก 1.3 กรัม

Pin Out

A4988 มีขาใช้งานทั้งหมด 16 ขา ซึ่งแบ่งเป็นขาไฟเลี้ยง 4 ขา , คอนโทรล 8 ขา และ Output 4 ขา ดังนี้้

การตั้งค่า Step Mode

A4988 นั้นสามารถตั้งค่า Step Mode ได้หลายแบบ โมดูล A4988 ก็ทำมาให้เราสามารถตั้งค่าได้โดยการใช้ขา M1, M2 และ M3 โดยการต่อขาต่าง ๆ เข้ากับแรงดันลอจิกต่าง ๆ ดังนี้

MS1 MS2 MS3 Resolution
LOW LOW LOW 1/1 (Full)
HIGH LOW LOW 1/2 (Half)
LOW HIGH LOW 1/4 (Quarter)
HIGH HIGH LOW 1/8 (Eighth )
HIGH HIGH HIGH 1/16 (Sixteenth )

เตรียมอุปกรณ์กันก่อนนะ

  1. V3 Wireless module NodeMcu 4M bytes ESP8266 esp-12e   สั่งซื้อ  →  คลิก
  2. Stepper Motor Nema17 17HS4401  สั่งซื้อ  →  คลิก
  3. A4988 stepper motor driver module  สั่งซื้อ  →  คลิก
  4. ตัวเก็บประจุ 100 μF 1 ตัว  สั่งซื้อ  →  คลิก
  5. สาย Jumper 20 cm Male to Male   สั่งซื้อ  →  คลิก
  6. สาย Jumper 30 cm Female to Female  สั่งซื้อ  →  คลิก
  7. สาย Jumper 20 cm Male to Female  สั่งซื้อ  →  คลิก

ตัวอย่างการต่อใช้งาน

A4988 Stepper Driver ⇒  ESP 8266

STEP       →        D5

DIR         →        D6

VDD        →        Vin

GND       →        GND

การปรับ Current limiting

ก่อนที่จะเริ่มใช้งานกับมอเตอร์นั้นเราจะต้องกำหนดกระแสที่จะจ่ายให้กับตัว Stepper Motor ก่อน เพื่อป้องกันไม่ให้กระแสไฟฟ้าไหลเข้าขดลวดของ Stepper Motor มากเกินไปซึ่งจะส่งผลให้ Stepper Motor เกิดความเสียหายได้ โดยการปรับกระแสนี้จะทำการปรับตัวต้านทานปรับค่าได้แบบ Trimmer บนตัวโมดูล (ตัวเล็ก ๆ นิดเดียว) โดยมี 2 วิธี

1. หา Datasheet

ของ Stepper Motor ที่เราต้างการใช้ มองหา Rated Current ตัวอย่าง ใช้มอเตอร์ NEMA17  17HS4401 คือ 1.7A (แม้มอเตอร์จะเรียกชื่อเหมือนกัน แต่ผู้ผลิตแต่ละรายอาจใช้กระแสต่างกัน ต้องดูดีๆ นะครับ)

2. คำนวณเลขจากสูตร

ตัวอย่างการคำนวณ

ในที่นี้ Current Limit เราคือ 1.5A คำนวณ Vref ได้ 0.6 V

3. วัดค่า Vref

โดยทำการจ่ายไฟเข้าบอร์ดเดี๋ยว 5V จากบอร์ดจะวิ่งเข้าโมดูล A4988 เอง และจ่ายไฟจากแหล่งภายนอกที่ใช้เลี้ยง Stepper Motor เข้าที่โมดูล A4988 ด้วย และวัดค่า Vref โดยนำโวลต์มิเตอร์สาย สีแดง(+) จิ้มที่ตัว Trimmer และสาย ดีดำ(-) เทียบกับ GND ค่อย ๆ หมุนปรับจนได้ค่า Vref ตามที่คำนวณไว้ ดังรูป

ตัวอย่างโค้ด

int DIR = 12; // pin D6 กำหนดเป็น Direction pin
int STEP = 14; // pin D5 กำหนดเป็น Step pin
int stepsPerRev = 200; // กำหนด step/รอบ เป็น 200 (Full Step Mode)

void setup() {
// STEP และ DIR เป็น OUTPUT
Serial.begin(9600);
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
}

void loop() {
// ให้มอเตอร์หมุนทิศตามเข็มนาฬิกาโดยให้ Direction เป็น HIGH
Serial.println(“มอเตอร์หมุนทิศตามเข็มนาฬิกา”);
digitalWrite(DIR, HIGH);

// สร้าง Pulse ให้มอเตอร์ ซึ่ง 1 ลูกมอเตอร์จะหมุน 1 Step ต้องการ 1 รอบ ต้องสร้าง Pulse 200 ลูก
for(int i = 0; i < stepsPerRev; i++){
digitalWrite(STEP, HIGH);
delayMicroseconds(2000);
digitalWrite(STEP, LOW);
delayMicroseconds(2000);
// Pulse 1 ลูก กว้าง 4000 us
}
delay(2000); // หน่วงเวลา 2 วินาที

// ให้มอเตอร์หมุนอีกทิศ คือทวนนาฬิกาโดยให้ Direction เป็น LOW
Serial.println(“มอเตอร์หมุนทิศทวนเข็มนาฬิกา”);
digitalWrite(DIR, LOW);
// สร้าง Pulse เหมือนเดิม แต่จะให้มอเตอร์หมุนเร็วขึ้นด้วยการให้ Pulse 1 ลูกมีความกว้างน้อยลงกว่าเดิม
for(int i = 0; i < stepsPerRev; i++){
digitalWrite(STEP, HIGH);
delayMicroseconds(1000);
digitalWrite(STEP, LOW);
delayMicroseconds(1000);
// Pulse 1 ลูก กว้าง 1000 us
}
delay(2000); // หน่วงเวลา 2 วินาที
}

ติดต่อซื้อของกับทางร้านได้ที่

AIC Online Store : http://www.dojogarden.com/index.php

โทร : 092-434-3096

LINE : @aic.engineer

Email : contact@ai-corporation.net

AIC Maker Supermarket สาขาลาดกระบัง

เปิดทำการจันทร์-เสาร์ 08:3017:30 น.

19/6 ถ.เจ้าคุณทหาร แขวงลำปลาทิว เขตลาดกระบัง กทม. 10520

Banner Content

0 Comments

Leave a Comment