使用PWM控制伺服馬達-micropython
tags: micropython
servo
pwm
伺服電機可以從 0 度旋轉到 180 度,但最多可以旋轉 210 度,具體取決於製造。可以通過將適當寬度的電脈衝應用到其控制引腳來控制這種旋轉程度。伺服每 20 毫秒檢查一次脈衝。 1 ms(1毫秒)寬度的脈衝可以將伺服旋轉到0度,1.5ms可以旋轉到90度(中位),2 ms脈衝可以將其旋轉到180度。
接線方式
- GND -> ESP32 GND pin;
- Power -> ESP32 VIN pin;
- Signal -> GPIO 13 (or any PWM pin).
將頻率設置為 50Hz(每 20ms 一個週期),並將佔空值設置在 18(18/1023 * 20ms = 0.35ms)和 115(115/1023 * 20ms = 2.24ms)之間。佔空比可以介於 0 和 1023 之間(包括 0 和 1023)。
程式碼
from machine import Pin, PWM, freq
from time import sleep
servo = PWM(Pin(13), freq=50) while True: for i in range(18, 115+1, 1):
servo.duty(i) print(i)
sleep(0.05) for j in range(115, 18, -1):
servo.duty(j) print(j)
sleep(0.05)