天天看點

和12歲小同志搞創客開發:遙控舵機

目錄

1、舵機控制理論

2、舵機控制實踐

機緣巧合在網上認識一位12歲小同志,從零開始系統輔導其創客開發思維和技巧。

和12歲小同志搞創客開發:遙控舵機

項目專欄:

https://blog.csdn.net/m0_38106923/category_11097422.html

之前講到了設計一款亮度可調節燈,在此基礎上,實作旋轉電位器控制舵機轉動。

和12歲小同志搞創客開發:遙控舵機

本項目使用的舵機是180°微型舵機,該舵機采用高強度ABS透明外殼配以内部高精度尼龍齒輪組,加上精準的控制電路、高檔輕量化空心杯電機使該微型舵機的重量隻有9克,而輸出力矩達到了驚人的1.6kg*cm,可滿足基本的項目應用。

控制舵機轉動,本質上也是PWM(脈沖寬度調制),通過一個固定的頻率,給其不同的占空比來控制舵機不同的轉角。

舵機的頻率一般為頻率為50HZ,也就是一個20ms左右的時基脈沖,而脈沖的高電平部分一般為0.5ms~2.5ms範圍,來控制舵機不同的轉角,0.5ms~2.5ms的PWM高電平部分對應控制180度舵機的0~180度。

以180度角度伺服為例,那麼對應的控制關系如下所示:

和12歲小同志搞創客開發:遙控舵機

下圖示範占空比從1ms變化到2ms時,轉角的變化:

和12歲小同志搞創客開發:遙控舵機

在設計一款亮度可調節燈中使用旋鈕電位器ADC采樣數值的範圍是0~1023之間,但是舵機可接收的旋轉角度是:0~180度,故建立轉換關系:

和12歲小同志搞創客開發:遙控舵機

是以,旋轉電位器ADC數值 X 180 = 舵機旋轉度數 X 1023, 故,舵機旋轉度數 = 旋轉電位器ADC數值 X 180 / 1023。

當旋轉電位器ADC數值為0時,帶入公式,舵機旋轉度數為0;當旋轉電位器ADC數值為1023時,舵機旋轉度數為180。

遙控舵機程式設計如下所示:

和12歲小同志搞創客開發:遙控舵機

在實際的開發過程中,發現如果直接使用旋轉電位器ADC數值 X 180 / 1023,數值會超出變量定義的極限,是以将此步驟分為:旋轉電位器ADC數值 X 18 / 1023,然後得到的結果再放大10倍。

效果如下所示:

和12歲小同志搞創客開發:遙控舵機

快來試試吧~

繼續閱讀