Stax
Tools

PWM Servo Calculator

Calculate PWM pulse width, duty cycle, and servo angle.

Servo range
Angle
90.0°
Pulse width
1500.0 µs
Duty cycle
7.500%
16-bit timer count
4,915
Pulse = minPulse + (angle − minAngle) / (maxAngle − minAngle) × (maxPulse − minPulse)
Period = 20000 µs (1/50 Hz)

วิธีการทำงานของเครื่องคำนวณ PWM Servo

เครื่องคำนวณ PWM servo แปลงระหว่างมุม servo (0°–180°) ความกว้างพัลส์ (1–2 ms) และ duty cycle สำหรับความถี่ควบคุม servo มาตรฐาน 50 Hz นอกจากนี้ยังคำนวณค่า timer compare register (CCR) สำหรับ timer STM32 และค่า analogWrite หรือ microsecond สำหรับ Arduino และ ESP32 ขจัดการคำนวณ PWM ด้วยตนเองระหว่างการพัฒนาโครงการ RC robot, gimbal และ CNC

RC servo ควบคุมด้วยสัญญาณ PWM 50 Hz (คาบ 20 ms) ความกว้างพัลส์เข้ารหัสตำแหน่ง: 1 ms สอดคล้องกับ 0° (ซ้ายสุด) 1.5 ms กับ 90° (กลาง) และ 2 ms กับ 180° (ขวาสุด) servo บางตัวรับช่วง 0.5–2.5 ms สำหรับการเดินทางที่ขยายออก เครื่องคำนวณอนุญาตให้ปรับแต่งความกว้างพัลส์ขั้นต่ำและสูงสุดเพื่อให้ตรงกับช่วง datasheet ของ servo

ที่ 50 Hz คาบคือ 20 ms พัลส์ 1 ms ให้ duty cycle 5% พัลส์ 2 ms ให้ 10% library Arduino Servo จัดการการแปลงเหล่านี้ภายในผ่าน writeMicroseconds() แต่หากใช้ raw PWM ค่า duty cycle จะต่างกันอย่างมีนัยสำคัญ เครื่องคำนวณให้ค่าที่แก้ไขแล้วสำหรับทั้ง 8-bit (0–255) และ 16-bit (0–65535)

บนไมโครคอนโทรลเลอร์ STM32 PWM servo สร้างโดยใช้ช่อง timer ในโหมด PWM ARR กำหนดคาบ CCR กำหนดความกว้างพัลส์ สำหรับนาฬิกา 72 MHz พร้อม prescaler 71 และ ARR = 19999 พัลส์ 1 ms ต้องการ CCR = 999 และพัลส์ 2 ms ต้องการ CCR = 1999 เครื่องคำนวณแสดงค่า CCR สำหรับความถี่นาฬิกาและมุมเป้าหมายใดๆ

ESC สำหรับมอเตอร์ brushless ใช้โปรโตคอล PWM 50 Hz เดียวกันกับ servo แต่ตีความช่วงพัลส์ต่างกัน 1 ms คือ throttle ขั้นต่ำ (หยุด) 2 ms คือ throttle สูงสุด (ความเร็วเต็ม) การ calibrate ESC ต้องการการส่งพัลส์ 2 ms เมื่อเปิดเครื่อง จากนั้นพัลส์ 1 ms เพื่อเสร็จสิ้น เครื่องคำนวณโหมด ESC ให้ค่า microsecond ที่แม่นยำและโค้ด Arduino สำหรับลำดับการ calibrate เต็ม

คำถามที่พบบ่อย

What PWM frequency do servos use?
Standard RC servos use 50 Hz (20ms period) PWM. The pulse width from 500µs–2500µs maps to 0°–180°. Some digital servos support up to 333 Hz for faster response.
What is the standard servo pulse range?
Most hobby servos use 1000µs–2000µs (1ms–2ms) as the working range, with 1500µs as center (90°). Many servos actually accept 500µs–2500µs for extended range.
How do I calculate the 16-bit timer compare value?
For a 16-bit timer at 50 Hz: compare value = (pulse_µs / period_µs) × 65535. For example, 1500µs at 50 Hz = (1500/20000) × 65535 = 4915.

เครื่องมือที่เกี่ยวข้อง