การเลือก Step Motor Driver

Kritthanit Malathong
2 min readOct 25, 2022

--

Post id: 44
Date: 26/10/2022

Step Motor Driver: TB6560

Step motor driver หรือตัวขับสเต็ปมอเตอร์ หรือจะเรียกทับศัพท์ว่าสเต็ปมอเตอร์ไดร์ฟเวอร์เลยก็ได้ ในท้องตลาดมีอยู่หลายชนิด หลายยี่ห้อ หลายรุ่น คำถามคือ แล้วเราควรจะเลือกรุ่นไหนดีละ?

วิธีการเลือก step motor driver

  1. ดูว่าตัวขับนั้นรองรับแรงดันของสเต็ปมอเตอร์ตัวนั้นรึเปล่า เช่น ถ้าเราใช้สเต็ปมอเตอร์ขนาด 24V แต่ถ้าขับ ขับได้แค่ 16V เราก็ใช้ตัวขับนี้ไม่ได้ แต่ตัวขับส่วนมากจะขับได้เป็นช่วงแรงดัน เช่น 16V — 35V ถ้าเป็นแบบนี้ก็ถือว่าใช้ได้เช่นกัน
  2. ดูที่สเต็ปมอเตอร์ว่ากินกระแสน้อยสุดเท่าไร มากสุดเท่าไร ถ้าตัวขับจ่ายกระแสไม่ถึง ก็ขับไม่ได้นะครับ

จริงก็ดูแค่นี้แหละครับ แต่ในโลกความเป็นจริง มันจะต่างจากทฤษฏีนิดหน่อยนะ

ตัวอย่างเช่น

ตัวอย่างสเต็ปมอเตอร์

สมมุติว่าสเต็ปมอเตอร์ของเราใช้แรงดัน 24V กินกระแสน้อยสุดคือ 1–5 แอมป์ แล้วถ้าผมอยากใช้ตัวขับรุ่น DRV8825 มาขับสเต็ปมอเตอร์ตัวนี้ ทุกคนคิดว่ามันจะขับได้ไหมครับ

DRV8825 Step Motor Driver

ถ้ายังไม่แน่ใจ งั้นเราลองมาดูสเปคของ DRV8825 กันนะ

  1. แรงดันที่รองรับ 8.2–45V
    เงื่อนไขแรก ผ่านครับ เพราะเราจะเอามาใช้ขับมอเตอร์ 24V ซึ่งอยู่ในที่ตัวขับตัวนี้รองรับ
  2. กระแสที่รองรับสูงสุดคือ 2.5 แอมป์
    เงื่อนไขที่สอง ก็ผ่านครับ เพราะกระแสน้อยสุดที่สเต็ปมอเตอร์ของเราต้องการคือ 1 แอมป์ ถ้าเราปรับให้รองรับกระแสได้สูงสุด 2.5 แอมป์ มันก็สามารถขับสเต็ปมอเตอร์ของเราได้สบายเลย

ถ้าอย่างนั้น เราก็สามารถใช้ตัวขับตัวนี้กับสเต็ปมอเตอร์ของเราได้ใช่ไหม?

คำตอบคือ…ก็ได้แหละครับ แต่ผมไม่แนะนำ

เพราะอะไรล่ะ…?

มันก็จริงอยู่ที่ว่าเราสามารถปรับกระแสสูงสุดได้ ถ้าเราปรับมันไม่ให้เกิน 2.5 แอมป์ มันก็คงไม่พังหรอก แต่ปัญหาคือ จะปรับยังไงล่ะ?

วิธีการปรับกระแสของ DRV8825 คือให้หมุน R ปรับค่าได้ ที่อยู่มุมบนซ้ายของรูปครับ โดยที่กระแสสูงสุดคำนวณจาก

Current_Limit = Vref * 2

โดยที่ Vref ให้วัดจาก R ปรับค่าได้ตัวนี้ เทียบกับ GND ฟังดูก็ไม่มีปัญหาอะไรใช่ไหมละ แต่จริงๆ แล้วปัญหามันอยู่ตรงนี้แหละ

เพราะมันเป็น R ปรับค่าได้ มันจึงสามารถปรับ Vref ได้ละเอียดมาก และเราอาจจะปรับมันเกินก็ได้ เช่น ถ้าเราบังเอิญปรับ Vref ไปที่ 1.5V ก็จะได้ว่า

Current_Limit = Vref * 2
Current_Limit = 1.5 * 2 = 3

แต่ตัวบอร์ด DRV8825 รองรับได้สูงสุดเท่าไรนะ? 2.5 แอมป์ใช่ไหม แล้วอะไรจะเกิดขึ้น?

คำตอบคือ บอร์ดไหม้ ยังไงละครับ

ดังนั้นมันสามารถใช้ได้ก็จริง แต่มันใช้ยาก เพราะต้องคอยปรับ R ให้พอดีเสมอ ซึ่งเราต้องหามิเตอร์มาวัด Vref ตอนเราปรับค่า R ด้วย ทำให้มันใช้งานได้ยุ่งยาก

ดังนั้นเราควรเลือกตัวขับที่ผ่านเงื่อนไขทั้ง 2 ข้อ และปรับ Current Limit ได้ง่าย

ตัวอย่างเช่น ตัวขับรุ่น TB6560 (ในรูปด้านบนสุด) รุ่นนี้เราสามารถปรับ Current Limit ได้โดยใช้สวิตช์ที่อยู่บนตัวบอร์ดได้เลย ดังนั้นต่อให้เราไม่มีมัลติมิเตอร์เราก็สามารถปรับค่ากระแสสูงสุดได้ง่ายๆ

ถึงแม้ว่ากระแสที่ได้จะไม่ใช่ค่าแบบละเอียด แต่ก็เป็นค่าที่แน่นอนเป๊ะๆ ทำให้เราไม่ต้องห่วงเรื่องกระแสไม่พอ หรือกระแสเกิน

ปัญหาต่างๆ เกี่ยวกับ Step Motor

  1. สเต็ปมอเตอร์ไม่หมุน
    สาเหตุ
    - ตัวขับพังแล้ว
    - แรงดันไม่พอ
  2. สเต็ปมอเตอร์ไม่หมุน และส่งเสียงแหลมออกมา
    สาเหตุ
    - ตัวขับจ่ายกระแสไม่พอ ให้ไปเพิ่ม Max Current Limit ที่ตัวขับ
  3. สเต็ปมอเตอร์หมุนทางเดียว
    สาเหตุ
    - ลืมต่อ GND หรือขั้วต่อ GND หลวม
  4. สเต็ปมอเตอร์หมุนแบบสั่นๆ หรือหมุนกลับไปกลับมา
    สาเหตุ
    - ลืมต่อ GND หรือขั้วต่อ GND หลวม
  5. สเต็ปมอเตอร์หมุนได้ปกติ แต่เสียงดัง
    สาเหตุ
    - ตัวขับจ่ายกระแสไม่พอ ให้ไปเพิ่ม Max Current Limit ที่ตัวขับ
  6. สเต็ปมอเตอร์หมุนไม่ลื่น ไม่เนียน
    สาเหตุ
    - ตัวขับจ่ายกระแสไม่พอ ให้ไปเพิ่ม Max Current Limit ที่ตัวขับ
  7. ตัวขับสเต็ปมอเตอร์ไหม้ หรือพังบ่อยๆ
    สาเหตุ
    - เซ็ตค่า Current Limit สูงเกินกว่าตัวขับจะรับได้ หรือเซ็ตใกล้ค่า Max Limit เกินไป ทำให้เวลาใช้ไปนานๆ ตัวขับจะร้อนขึ้นเรื่อยๆ เพราะมันระบายความร้อนไม่ทัน สุดท้ายมันก็เลยไหม้ วิธีแก้คือไปปรับ Current Limit ลงมา หรือหาตัวขับใหม่ที่รองรับกระแสได้สูงขึ้นมาใช้แทน

ทั้งหมดที่ผมอยากแชร์ก็มีประมาณนี้นะครับ ส่วนเรื่องการเขียนโค้ดโปรแกรมยังไง การต่อยังไง อันนั้นมีคนเขียนเอาไว้เยอะแล้วครับ ทุกคนน่าจะสามารถหาได้ง่ายๆ แต่ปัญหาคือ หลังจากนั้นต่างหาก

โค้ดโปรแกรมก็ถูก วงจรก็ต่อถูก แต่ทำไมมอเตอร์ไม่หมุน ตรงนี้แหละครับที่ไม่ค่อยมีคนบอก ผมเลยอยากมาแชร์ให้ทุกคนได้รู้กันครับ

--

--

No responses yet