目錄
1、舵機控制理論
2、舵機控制實踐
機緣巧合在網上認識一位12歲小同志,從零開始系統輔導其創客開發思維和技巧。

項目專欄:
https://blog.csdn.net/m0_38106923/category_11097422.html之前講到了設計一款亮度可調節燈,在此基礎上,實作旋轉電位器控制舵機轉動。
本項目使用的舵機是180°微型舵機,該舵機采用高強度ABS透明外殼配以内部高精度尼龍齒輪組,加上精準的控制電路、高檔輕量化空心杯電機使該微型舵機的重量隻有9克,而輸出力矩達到了驚人的1.6kg*cm,可滿足基本的項目應用。
控制舵機轉動,本質上也是PWM(脈沖寬度調制),通過一個固定的頻率,給其不同的占空比來控制舵機不同的轉角。
舵機的頻率一般為頻率為50HZ,也就是一個20ms左右的時基脈沖,而脈沖的高電平部分一般為0.5ms~2.5ms範圍,來控制舵機不同的轉角,0.5ms~2.5ms的PWM高電平部分對應控制180度舵機的0~180度。
以180度角度伺服為例,那麼對應的控制關系如下所示:
下圖示範占空比從1ms變化到2ms時,轉角的變化:
在設計一款亮度可調節燈中使用旋鈕電位器ADC采樣數值的範圍是0~1023之間,但是舵機可接收的旋轉角度是:0~180度,故建立轉換關系:
是以,旋轉電位器ADC數值 X 180 = 舵機旋轉度數 X 1023, 故,舵機旋轉度數 = 旋轉電位器ADC數值 X 180 / 1023。
當旋轉電位器ADC數值為0時,帶入公式,舵機旋轉度數為0;當旋轉電位器ADC數值為1023時,舵機旋轉度數為180。
遙控舵機程式設計如下所示:
在實際的開發過程中,發現如果直接使用旋轉電位器ADC數值 X 180 / 1023,數值會超出變量定義的極限,是以将此步驟分為:旋轉電位器ADC數值 X 18 / 1023,然後得到的結果再放大10倍。
效果如下所示:
快來試試吧~