sg90一共三根線,紅線接5v電源,棕線gnd。黃線為資料控制線,該線接到gpio上,這裡我們是bcm模式的pin 21.
sg90 脈衝週期為20毫秒(millisecond) 不是20微秒(microsecond),兩者差1000倍呢!也就是說最多1秒鐘內可以轉動50次,但是考慮到每次轉動還要耗時,所以實際達不到50次。pwm控制訊號週期20ms,脈寬0.5ms-2.5ms對應的角度-90到+90度,範圍180度(3度左右偏差),當脈寬1.5ms時舵機在中立點(0度),我們直接用python的gpio提供的pwm控制。脈寬0.5ms-2.5ms 對應的占空比為2.5% - 12.5% . 理論上,10%的空間可以提供180度的線性分割。
下面的**可以看到舵機不停的從0度轉到180度,再轉回來到0度。
#!/usr/bin/env python
import rpi.gpio as gpio
import time
import signal
import atexit
atexit.register(gpio.cleanup)
servopin = 21
gpio.setmode(gpio.bcm)
gpio.setup(servopin, gpio.out, initial=false)
p = gpio.pwm(servopin,50) #50hz
p.start(0)
time.sleep(2)
while(true):
for i in range(0,181,10):
p.changedutycycle(2.5 + 10 * i / 180) #設定轉動角度
time.sleep(0.02) #等該20ms週期結束
p.changedutycycle(0) #歸零訊號
time.sleep(0.2)
for i in range(181,0,-10):
p.changedutycycle(2.5 + 10 * i / 180)
time.sleep(0.02)
p.changedutycycle(0)
time.sleep(0.2)
SG90舵機驅動
舵機的控制需要mcu產生乙個20ms的脈衝訊號,以0.5ms到2.5ms的高電平來控制舵機的角度 0.5ms 0度 2.5 1.0ms 45度 5.0 1.5ms 90度 7.5 2.0ms 135度 10.0 2.5ms 180度 12.5 tim setcompare1 tim1,cout ti...
51微控制器控制SG90舵機
接線方法 紅 色vcc 棕色gnd 橙色訊號線 調整訊號線的pwm,實現各個角度轉動 高電平t佔整個週期t 20ms 的時間 舵機旋轉的角度 0.5ms 0度 1ms 45度 1.5ms 90度 2ms 135度 2.5ms 180度 include 自定義變數型別 typedef unsigned...
樹莓派python控制舵機 樹莓派控制舵機資料
舵機介紹 樹莓派pwm函式介紹 舵機角度和占空比對應的關係動畫。對應關係如下,範圍為 90 到 90 為了方便計算,可以將其對映到0 180 角度20ms內脈衝寬度 占空比對映後角度 90 0.5ms 2.5 0 45 1ms5.0 45 0 1.5ms 7.5 90 45 2ms10.0 135 ...