和12歲小同志搞創(chuàng)客開發(fā):遙控舵機
機緣巧合在網(wǎng)上認(rèn)識一位12歲小同志,從零開始系統(tǒng)輔導(dǎo)其創(chuàng)客開發(fā)思維和技巧。
之前講到了設(shè)計一款亮度可調(diào)節(jié)燈,在此基礎(chǔ)上,實現(xiàn)旋轉(zhuǎn)電位器控制舵機轉(zhuǎn)動。
本項目使用的舵機是180°微型舵機,該舵機采用高強度ABS透明外殼配以內(nèi)部高精度尼龍齒輪組,加上精準(zhǔn)的控制電路、高檔輕量化空心杯電機使該微型舵機的重量只有9克,而輸出力矩達(dá)到了驚人的1.6kg*cm,可滿足基本的項目應(yīng)用。
1
舵機控制理論
控制舵機轉(zhuǎn)動,本質(zhì)上也是PWM(脈沖寬度調(diào)制),通過一個固定的頻率,給其不同的占空比來控制舵機不同的轉(zhuǎn)角。
舵機的頻率一般為頻率為50HZ,也就是一個20ms左右的時基脈沖,而脈沖的高電平部分一般為0.5ms~2.5ms范圍,來控制舵機不同的轉(zhuǎn)角,0.5ms~2.5ms的PWM高電平部分對應(yīng)控制180度舵機的0~180度。
以180度角度伺服為例,那么對應(yīng)的控制關(guān)系如下所示:
0.5ms-------------0度
1.0ms------------45度
1.5ms------------90度
2.0ms-----------135度
2.5ms-----------180度
下圖演示占空比從1ms變化到2ms時,轉(zhuǎn)角的變化:
1
舵機控制實踐
在設(shè)計一款亮度可調(diào)節(jié)燈中使用旋鈕電位器ADC采樣數(shù)值的范圍是0~1023之間,但是舵機可接收的旋轉(zhuǎn)角度是:0~180度,故建立轉(zhuǎn)換關(guān)系:

所以,旋轉(zhuǎn)電位器ADC數(shù)值 X 180 = 舵機旋轉(zhuǎn)度數(shù) X 1023, 故,舵機旋轉(zhuǎn)度數(shù) = 旋轉(zhuǎn)電位器ADC數(shù)值 X 180 / 1023。
當(dāng)旋轉(zhuǎn)電位器ADC數(shù)值為0時,帶入公式,舵機旋轉(zhuǎn)度數(shù)為0;當(dāng)旋轉(zhuǎn)電位器ADC數(shù)值為1023時,舵機旋轉(zhuǎn)度數(shù)為180。
遙控舵機程序設(shè)計如下所示:
在實際的開發(fā)過程中,發(fā)現(xiàn)如果直接使用旋轉(zhuǎn)電位器ADC數(shù)值 X 180 / 1023,數(shù)值會超出變量定義的極限,所以將此步驟分為:旋轉(zhuǎn)電位器ADC數(shù)值 X 18 / 1023,然后得到的結(jié)果再放大10倍。
效果如下所示:
快來試試吧~
往期推薦
