> For the complete documentation index, see [llms.txt](https://taiphoon-com.gitbook.io/taiphoon.com-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://taiphoon-com.gitbook.io/taiphoon.com-docs/th/firmware/ardupilot/first-setup/motor-setup.md).

# ตั้งค่าและทดสอบเอาต์พุตมอเตอร์

ตรวจสอบช่องเอาต์พุตมอเตอร์ใน Servo Output และตั้งค่าพารามิเตอร์ DShot จากนั้นใช้การทดสอบมอเตอร์เพื่อตรวจสอบการจัดลำดับมอเตอร์และทิศทางการหมุน

{% hint style="warning" %} <mark style="color:red;">**ก่อนทดสอบมอเตอร์ ต้องถอดใบพัดออกทุกครั้ง**</mark>
{% endhint %}

## ข้อกำหนดฮาร์ดแวร์พื้นฐาน

* ต้องรองรับ BLHeli\_S, BLHeli\_32 หรือ AM32

{% stepper %}
{% step %}

### เอาต์พุตเซอร์โว (Servo Output)

ไปที่หน้า **Servo Output ในการตั้งค่าเริ่มต้น (Initial Setup)**

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/x5BbV7jzGRSarkqW0jXp/image.png" alt=""><figcaption></figcaption></figure>

สามารถเลือกฟังก์ชันทริกเกอร์ต่าง ๆ ได้ที่**ช่องสัญญาณ/ตำแหน่ง (Channel/Position)** ที่เกี่ยวข้อง โดยทั่วไปในมัลติโรเตอร์ ช่องสัญญาณ 1\~4 คือช่องเอาต์พุตมอเตอร์
{% endstep %}

{% step %}

### การตั้งค่าพารามิเตอร์สำคัญ

<table><thead><tr><th width="192">ชื่อพารามิเตอร์</th><th width="143">ค่าที่ตั้ง</th><th>คำอธิบาย</th></tr></thead><tbody><tr><td><code>MOT_PWM_TYPE</code></td><td><strong>6</strong></td><td>ตั้งค่าเป็น DShot600 (หาก ESC เป็นรุ่นเก่า สามารถเลือก 5=DShot300)</td></tr><tr><td><code>SERVO_BLH_AUTO</code></td><td><strong>1</strong></td><td>เปิดใช้การรองรับ BLHeli ของขาที่เกี่ยวข้องโดยอัตโนมัติ</td></tr><tr><td><code>SERVO_DSHOT_ESC</code></td><td><strong>3</strong></td><td>เปิดใช้เทเลเมทรี DShot หรือฟังก์ชันขั้นสูง (BLHeli32/AM32/Kiss+EDT)</td></tr></tbody></table>
{% endstep %}

{% step %}

### การทดสอบมอเตอร์

การจัดวางมอเตอร์ที่พบบ่อยคือแบบ X ทิศทางการหมุนของมอเตอร์ที่ถูกต้องเป็นดังนี้:

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/70Jkgj7LBpQ7SQGu5GN2/image.png" alt=""><figcaption></figcaption></figure>

เข้าสู่หน้าทดสอบมอเตอร์:

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/FShrhJSWW4AGLb91xAUp/image.png" alt=""><figcaption></figcaption></figure>

ในการทดสอบมอเตอร์ พารามิเตอร์เริ่มต้นคือ Throttle=5% และ Duration=2 sec ให้ทดสอบตามลำดับตั้งแต่มอเตอร์ A ถึงมอเตอร์ D โดยอ้างอิงจากภาพการจัดวางมอเตอร์ด้านบน

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/4zjXPlNxJbWJw4YrDLWA/image.png" alt=""><figcaption></figcaption></figure>

ตามปกติ ลำดับการหมุนควรเป็นดังตารางต่อไปนี้ (สมมติว่าหัวโดรนหันไปด้านหน้า):

| ปุ่มที่กด        | ตำแหน่งมอเตอร์ที่หมุน           | ทิศทางการหมุน       |
| ---------------- | ------------------------------- | ------------------- |
| Test motor A     | ด้านหน้าขวา (มอเตอร์หมายเลข 1)  | ทวนเข็มนาฬิกา (CCW) |
| Test motor B     | ด้านหลังขวา (มอเตอร์หมายเลข 4)  | ตามเข็มนาฬิกา (CW)  |
| Test motor C     | ด้านหลังซ้าย (มอเตอร์หมายเลข 2) | ทวนเข็มนาฬิกา (CCW) |
| Test motor D     | ด้านหน้าซ้าย (มอเตอร์หมายเลข 3) | ตามเข็มนาฬิกา (CW)  |
| {% endstep %}    |                                 |                     |
| {% endstepper %} |                                 |                     |

## วิธีแก้ไขเมื่อลำดับมอเตอร์ผิด

หากตำแหน่งที่หมุนไม่ถูกต้อง จะต้องไปที่หน้า Servo output เพื่อเปลี่ยนลำดับมอเตอร์

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/D3GwbpNB47RUsBNPbrTq/image.png" alt=""><figcaption></figcaption></figure>

**สมมติว่าลำดับเดิมเป็นดังนี้**

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/0rfu74FdwRzi2KlScHcI/image.png" alt=""><figcaption></figcaption></figure>

หากเมื่อกด Test motor A แล้ว แทนที่จะเป็น**มอเตอร์ด้านหน้าขวา (มอเตอร์หมายเลข 1) หมุน** กลับเป็น**มอเตอร์ด้านหลังขวา (มอเตอร์หมายเลข 4) หมุน** แสดงว่า**ฟังก์ชัน Motor1 ถูกกำหนดให้กับ Channel/Position 1 อย่างไม่ถูกต้อง (เอาต์พุต PWM ของวงจรจริง หมายความว่า Position1 จริงไม่ใช่มอเตอร์ตัวแรก)** ดังนั้นจะต้องเปลี่ยน **Channel/Position 1** เป็น **Motor2\~Motor4** ตามลำดับ และ**อย่าให้มีการตั้งค่า MotorN ซ้ำกัน** เพื่อหลีกเลี่ยงการตรวจหาปัญหาไม่ได้ จนกว่าจะทดสอบแล้วพบว่าลำดับมอเตอร์ถูกต้อง

## วิธีแก้ไขเมื่อทิศทางการหมุนของมอเตอร์ผิด

ไปที่ **Full Parameters ในหน้า การกำหนดค่า／การปรับแต่ง (CONFIG/TUNING)** แล้วเปลี่ยน **`SERVO_BLH_RVMASK`** หลังเปลี่ยนแล้วต้อง **รีสตาร์ตตัวควบคุมการบิน** จึงจะมีผล

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/IsexahjY40GOhLsIaSVD/image.png" alt=""><figcaption></figcaption></figure>

หาก Motor1 หมุนผิดทิศ จะต้องไปดูที่ Servo output ว่า Motor1 ตรงกับ **Channel/Position** ใด แล้วทำเครื่องหมายที่ **Channel/Position** นั้น และเขียนพารามิเตอร์ ตามตัวอย่างในภาพด้านล่าง ต้อง**ทำเครื่องหมายที่ Channel1**

<figure><img src="https://content.gitbook.com/content/MaE0BhiwIATT2xWZzZn1/blobs/tbr8v8yChHNTqW1BLDXn/image.png" alt=""><figcaption></figcaption></figure>

## ข้อยกเว้น: การปรับเทียบตัวควบคุมความเร็วรอบมอเตอร์ (ESC Calibration)

ArduPilot มีวิธีปรับเทียบ ESC ทุกตัวพร้อมกัน โดยมีขั้นตอนดังนี้ **หากใช้เฟิร์มแวร์ควบคุม ESC (เช่น AM32) ไม่จำเป็นต้องปรับเทียบ**

### ขั้นที่ 1: เข้าสู่โหมดปรับเทียบ

1. **เปิดรีโมตคอนโทรล** และ**ดันคันเร่งไปที่สูงสุด (100%)**
2. ต่อแบตเตอรี่ ไฟ LED บนตัวควบคุมการบินจะกะพริบวนสีแดง น้ำเงิน เหลือง (หมายถึงตรวจพบว่าคันเร่งอยู่ตำแหน่งสูงตอนเปิดเครื่อง และกำลังเตรียมเข้าสู่โหมดปรับเทียบ)
3. ถอดแบตเตอรี่
4. ต่อแบตเตอรี่อีกครั้ง

### ขั้นที่ 2: ดำเนินการปรับเทียบ

1. กดสวิตช์นิรภัย (Safety Switch) (หากฮาร์ดแวร์ของท่านมี ให้กดค้างจนไฟสีแดงติดค้าง)
2. ขณะนี้ ESC จะส่งเสียงบี๊พพิเศษหลายครั้ง (โดยปกติเป็นเสียงสั้นสองครั้ง) หมายถึงบันทึกตำแหน่งคันเร่งสูงสุดแล้ว
3. **ดึงคันเร่ง**ของรีโมตคอนโทรล**ลงมาต่ำสุด (0%)**
4. ESC จะส่งเสียงยาวหนึ่งครั้งหรือเสียงบี๊พต่อเนื่อง (หมายถึงบันทึกคันเร่งต่ำสุดและเริ่มต้นการทำงานเสร็จแล้ว)
5. จากนั้น**ดันคันเร่งเบา ๆ** มอเตอร์ควรเริ่มหมุนพร้อมกัน

## ขั้นตอนถัดไป

[ตั้งค่าโหมดการบิน](/taiphoon.com-docs/th/firmware/ardupilot/first-setup/flight-modes.md)
