arduino控制舵機代碼「arduino舵機轉動程序」

Arduino舵機使用基礎篇

今天馬克筆設計留學的程老師繼續給大家帶來Arduino的相關知識,之前發布了很多相關文章,記得複習啊!
舵機是很多同學喜歡使用的一種傳感器。它是一種位置「角度」伺服的驅動器,適用於那些需要角度不斷變化並可以保持的控制系統。目前在高檔遙控玩具、航模、機器人中已經得到普遍使用。舵機,其實就是個低端的伺服電機系統,它也是最常見的伺服電機系統,因此英文叫做Servo,就是Servomotor的簡稱。它將PWM信號與滑動變阻器的電壓相比對,通過硬件電路實現固定控制增益的位置控制。也就是說,它包含了電機、傳感器和控制器,是一個完整的伺服電機(系統)。價格低廉、結構緊湊,但精度很低,位置鎮定能力較差,能夠滿足很多低端需求。

Arduino舵機使用基礎篇

外部接線,舵機一般都外接三根線,分別用棕、紅、橙三種顏色進行區分,由於品牌不同,顏色也會有所差異,棕色為接地線,紅色為電源正極線,橙色為信號線。由於Arduino的驅動能力有限,當需要控制多個舵機時,需要外接電源以及使用專用的舵機控制板。

Arduino舵機使用基礎篇
Arduino舵機使用基礎篇

舵機的轉動的角度是通過調節PWM(脈衝寬度調製)信號的占空比來實現的,標準PWM(脈衝寬度調製)信號的周期固定為20ms(50Hz),理論上脈寬分布應在1ms到2ms 之間,但是,事實上脈寬可由0.5ms 到2.5ms 之間,脈寬和舵機的轉角0°~180°相對應。有一點值得注意的地方,由於舵機牌子不同,對於同一信號,不同牌子的舵機旋轉的角度也會有所不同。

servo類下有以下成員函數:attach()//連接舵機;write()//角度控制;writeMicroseconds();read()//讀上一次舵機轉動角度;detach()//斷開舵機連接。當然,用於舵機的第三方庫要去github上下載。經常有學生喜歡用舵機去控制機械臂,那我們在新手包里使用到的是180度的舵機,舵機也有可以轉動90度,270度和360度的。但是要明確一點,360度舵機無法像180度舵機一樣控制角度,它只能控制方向和速度。

Arduino舵機使用基礎篇

關於函數——《Arduino常見函數講解

360度舵機與一般舵機的區別是:給一般舵機一個PWM信號,舵機會轉到一個特定角度,而給360度舵機一個PWM信號,舵機會以一個特定的速度轉動,類似於電機。但與電機不同的是,360舵機是閉環控制,速度控制穩定。很多學生喜歡用舵機去帶動一些東西旋轉,從而實現某些效果,在這裡我要提醒大家,單個舵機本身的力量有限,它是否能帶動你需要經過實驗,不要想當然,憑空去假設,測試環節是我們在做Arduino項目時最重要的階段。

以180度舵機為例:
0.5ms—————-0度;
1ms —————–45度;
1.5ms—————-90度;
2ms —————–135度;
2.5ms —————180度;

PWM 信號與360舵機轉速的關係:
0.5ms—————-正向最大轉速;
1.5ms—————-速度為0;
2.5ms—————-反向最大轉速;

Arduino舵機使用基礎篇

還有個步進電機,也是大家經常提到的。那我來簡單說一下步進電機和舵機的區別,步進電機英文是stepper/step/stepping motor。主要是依靠定子線圈序列通電,順次在不同的角度形成磁場,推拉定子旋轉。步進電機的好處是,你可以省掉用於測量電機轉角的傳感器。因此在結構上和價格上有一定的優勢。而且它的位置和速度控制相對簡單。其缺點是,第一,與同等功率的電機相比載荷比較小,沒有角度傳感器的情況下不能輸出大力矩。第二,功耗相對較大,要麼全開,要麼全關。所以要麼接近滿功耗,要麼就不能出力。ULN2003驅動板上IN1、IN2、IN3、IN4分別連接UNO開發板的數字引腳2,3,4,5;驅動板電源輸入+、-引腳分別連接UNO開發板的5V、GND。

Arduino舵機使用基礎篇

今天的內容到這裡就結束了,希望大家通過今天分享能夠掌握舵機的基本使用方法。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/203732.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-07 12:11
下一篇 2024-12-07 12:11

相關推薦

發表回復

登錄後才能評論