樹莓派控制SG90舵機

2021-06-28 04:28:57 字數 1222 閱讀 2995

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 ...