电竞比分网-中国电竞赛事及体育赛事平台

分享

如何使用Arduino舵機庫servo.h – 八色木

 MyFinoa 2020-02-13

文章目錄[隱藏]

我們都知道Arduino控制板支持PWM的引腳有限,但如果在Arduino上需要控制超出PWM引腳數(shù)量的舵機怎么辦呢?答案是使用servo.h庫文件,它是Arduino控制舵機的標準庫之一。

舵機的內(nèi)部結構

Servo.h

查看Arduino庫文件列表,可通過Arduino IDE的“Help”菜單下的“Reference”查看。

Arduino Libraries
Arduino Libraries

我們可以看到在Arduino標準庫中的servo庫,單擊連接后進入,可查看servo.h文件更詳細的內(nèi)容。

Servo library
Servo library

在上圖左邊是對servo庫文件的基本介紹,右邊是主要的函數(shù)和示例。

Servo庫文件使用

我們知道舵機必須定期接收高電平脈沖控制信號才能維持轉動。如果信號停止,舵機也停止。詳見:舵機角度的控制。如果使用servo庫來設置控制信號,就可以通過引入一些代碼,實現(xiàn)如延遲、檢查傳感器、等待等功能。同時,由于servo庫一直在后臺運行,而舵機一直在旋轉,它會經(jīng)常中斷其他正在執(zhí)行的代碼來啟動那些高脈沖,帶是這個切換的動作快到我們感知不到。

使用servo庫來發(fā)送舵機控制信號一般需要四個步驟:

1、 首先要告訴Arduino編程器,希望在代碼開始時,即setup函數(shù)之前,聲明使用Servo庫函數(shù)。

#include <Servo.h>          // Include servo library

2、 在#include和setup函數(shù)之間為要發(fā)送的信號命名servo庫的實例。如下servoLeft就是指定的實例名稱。

Servo servoLeft;            // Declare left servo

3、 在setup函數(shù)中,使用給出的舵機信號的名稱后跟一個點,然后通過附加函數(shù)attach()調用信號引腳。這個例子告訴系統(tǒng)舵機信號servoLeft應該通過數(shù)字引腳13來傳輸。

servoLeft.attach(13);      // Attach left signal to pin 13

4、writeMicroseconds()函數(shù),用于設置脈沖持續(xù)時間。

servoLeft.writeMicroseconds(1500); // 1.5 ms stay-still signal

5、write()函數(shù), 作用是將一個角度值寫入舵機,設置軸轉動的角度(該值是指角度),0為在一個方向全速轉動,180為在另一個方向上全速轉動,接近90為復位。

servoLeft.write(90);  // set servo to mid-point 

6、attached()函數(shù),用于檢測servo變量是否正確連接至Arduino對應引腳上。返回值為 true 和 false 。

servoLeft.attached()

7、detach()函數(shù), 作用是從對應引腳上分離舵機變量。如果要將所有舵機變量分離,則使用analogWrite()函數(shù)將引腳9和引腳10用于PWM輸出。

servoLeft.detach() 

8、read()函數(shù), 用于讀取舵機的當前角度值(傳遞給上次調用write()的值)。

servoLeft.read()  

以上是servo.h庫文件的基本函數(shù)講解,如有不當之處請諒解。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多