sg-90舵機屬於模擬舵機 模擬舵機與數字舵機的區別在於,模擬舵機需要持續不斷地用pwm訊號驅動,(由於沒玩過數字舵機,可能存在錯誤)
長這樣接線:
pwm:橙色
vcc:紅色(4.8-6v)
gnd:棕色
工作原理:內部有乙個基準電路,產生週期為20ms,寬度為1.5ms的基準訊號(高電平t0=1.5ms),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最後,電壓差的正負輸出到電機驅動晶元決定電機的正反轉。例如輸入pwm週期也為20ms,高電平t2=2ms(一般在0.5ms~2.5ms之間),則有
2-1.5=▲t=0.5ms 這個▲t=0.5ms的時間決定了舵機的旋轉角度和正反轉。有如下關係(需驗證)
t2角度
需要注意的是舵機的旋轉速度一般為0.22/60度或
0.18/60度(即如果讓它從0°到180°,則必須給它足夠長的時間完成旋轉)
使用過程大致是這樣的:利用定時器pwm設定出50hz的輸出,即20ms為乙個計數週期,然後通過控制占空比來調整舵機的旋轉角度,(占空比為高電平佔乙個週期的時間比)
還有一種控制思路為中斷。如在乙個20ms的週期內,前2ms輸出高電平,且2ms後產生中斷,變成輸出18ms的
低電平,然後再中斷,輸出高電平。也可以完成類似於pwm的控制
本文為pwm控制方法
pwm的初始化
1通過獨立函式設定占空比void
pwm_init(u16 arr,u16 psc)
2
tim_setcompare1(tim5,angle);main
1int main(void)2
21 }
1比如想調整為c=90°,則要輸出t1=1.5ms的高電平,pwm設定為從0計數到9999為t2=20ms(向上計數)void sg90_init(float
angle)
2
則容易得出(9999+1)*(t1/20)=750,即從0計數到749用1.5ms,由此得出角度和crrx的關係
0°249
45°499
90°749
135°
999180°
1249
STM32 SG90舵機應用
原理是啥我也不知道。從找的資料看到 很多舵機的位置等級有1024個,如果舵機的有效角度範圍為180度的話,其控制的角度精度是可以達到180 1024度約0.18度了,從時間上看其實要求的脈寬控制精度為2000 1024us約2us。如果你拿了個舵機,連控制精度為1度都達不到的話,而且還看到舵機在發抖...
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...
樹莓派控制SG90舵機
sg90一共三根線,紅線接5 電源,棕線gnd。黃線為資料控制線,該線接到gpio上,這裡我們是bcm模式的pin 21.sg90 脈衝週期為20毫秒 millisecond 不是20微秒 microsecond 兩者差1000倍呢!也就是說最多1秒鐘內可以轉動5 次,但是考慮到每次轉動還要耗時,所...