Arduino(五)舵機控制—Servo庫

2021-12-10 玹之空間

    在機器人機電控制系統中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統和航模中作為基本的輸出執行機構,其簡單的控制和輸出使得單片機系統非常容易與之接口。    

    舵機是一種位置(角度)伺服的驅動器,適用於那些需要角度不斷變化並可以保持的控制系統。目前在高檔遙控玩具,如航模,包括飛機模型,潛艇模型;遙控機器人中已經使用得比較普遍。舵機是一種俗稱,其實是一種伺服馬達。

    舵機有3根線:電源,地線和信號線。

    電源線通常情況下是紅色的線,並且應該被連接Arduino板上的5V引腳上,地線通常是黑線或棕線,應該被連接到Arduino板的地線腳(GND),信號線通常為黃色,橙色或白色,應該被連接到Arduino板上的數字(digital)腳。

    注意:伺服電機需要較大的功率,如果需要驅動大於1-2個伺服電機,你可能需要將它們連接至獨立的電源(不是Arduino板上的+5V電源),並確保外部電源的地線和Arduino的地線連接了起來。


舵機         開發板
GND(黑)-->GND
VCC(紅)-->5V
Signal(黃)-->設置的引腳號

servo類下有以下成員函數 

attach()//連接舵機 

write()//直接角度控制 

writeMicroseconds()//利用微秒值控制角度 

read()//讀取舵機轉動角度 

attached()//檢查一個servo變量是否被附加到一個引腳 

detach()//斷開舵機連接

(程序在IDE>File>Examples>Servo>Sweep中找到)

#include <Servo.h> Servo myservo;                            int pos = 0;    void setup() {   myservo.attach(9);  }  void loop() {   for(pos = 0; pos < 180; pos += 1)    {                                                         myservo.write(pos);            delay(15);                         }   for(pos = 180; pos>=1; pos-=1)     {                                    myservo.write(pos);             delay(15);                          } }

打開Arduino軟體點擊工具>管理庫>搜索servo>點擊下載(出現INSTALLED即為下載成功)

(如果你選用的是ArduinoNano,處理器要選擇OldBootloader,否則編譯失敗)

舵機         開發板
GND(黑)-->GND
VCC(紅)-->5V
Signal(黃)-->D9(設置的引腳號)

覺得不錯就賞一個噻

相關焦點

  • Arduino舵機控制
    不過SG90舵機的轉動角度只有180度,所以簡易雲臺不能夠實現360度旋轉了。        說到了舵機,這裡對舵機簡單的介紹一下吧。舵機是一種位置(角度)伺服的驅動器,適用那些需要角度不斷變化並可以保持的控制系統。舵機只是一種通俗的叫法,其實質是一個伺服馬達。舵機又分為模擬舵機和數字舵機。模擬舵機:需要不斷的發送目的地PWM信號,才能旋轉到指定位置。
  • arduino驅動帶撥片的ST90S微型舵機完成貨物撥取任務
    之前我寫了arduino驅動步進電機帶動絲杆運動的博客,連結在下面:arduino控制步進電機移動絲杆實現撥片架水平移動既然已經可以驅動絲杆帶動撥片架運動了,接下就是需要驅動ST90S微型舵機來帶動撥片撥取貨物了,本博客就介紹arduino如何驅動ST90S微型舵機
  • Arduino+舵機製造指尖陀螺機器人
    MAKER:Nikus/ 譯:趣無盡這是一個簡單到令人髮指的機器,它唯一的用途就是幫你去撥動指尖陀螺讓它高速旋轉……需要用一個 Arduino 驅動舵機3D列印資源請到項目文件庫中下載。你不需要安裝其他的庫。
  • 舵機得這麼用
    揮舞一陣電烙鐵,動力電就搞定了,下面看下控制。舵機的控制電再來看一下供電圖示:舵機的動力電和控制信號可以不在同一電平下,舵機的控制信號可以直接接單片機的 3.3V 引腳。180 度舵機的控制信號大多與 SG90 小舵機一樣,如下:
  • 揮手之間即可開關的Arduino智能垃圾桶
    Sensor is cheap range ultrasonic sensor for arduino, and actuator is servo motor, all these components I』ve bought very cheap on aliexpress, links in the video's description.
  • LabVIEW+Arduino:舵機控制
    好久沒有更新關於Arduino的相關內容了這次講一下如何通過Labview控制舵機。   一般以周期20ms,高電平為0.5ms-2.5ms的PWM信號來控制舵機角度,本次教程使用0-180度的舵機,則0.5ms-2.5ms(500微秒-2500微秒)對應舵機0-180度。
  • 舵機要怎麼驅動?用PCA9685解決,十來塊的板子能級聯900個舵機!
    對於稍微高級點的單片機,都會有專門的pwm輸出引腳,像arduino板子上右側帶有"~"符號的都能輸出PWM信號,經過一些設置或者調用庫函數就可以直接控制舵機回頭看看他們的弊端,用單片機直接驅動是一個舵機需要佔用一個信號腳,arduino才有幾個腳能用。再看看弱點的單片機stc89c52,不考慮定時器相互幹擾的話一個定時器才能控制一個舵機,裡面只有三個定時器.
  • 【Arduino極簡教程】-11 Arduino的物理輸出
    對步進電機的控制,Arduino有相應的<Stepper.h>庫幫助我們簡化控制的程序。我們利用庫函數控制使步進電動機順時針緩慢移動,然後迅速逆時針移動。用Arduino控制舵機一般有兩種方法:一是通過Arduino控制板輸出不同的電壓;二是直接利用Arduino自帶的Servo庫進行控制。<Servo.h>庫幫助我們簡化控制的程序。我們利用庫函數控制使舵機在0-180°之間來迴轉動。
  • ESP32晶片-LEDC外設(另附Arduino代碼)
    在控制舵機上面需要明白一點,其實就是在控制PWM的輸出,還有就是控制多少多舵機的事情。
  • Arduino如何多任務(下)
    currentMillis); led1.Update(currentMillis); } led2.Update(currentMillis); led3.Update(currentMillis);} void loop(){}這樣,在loop()裡我們連一行代碼也沒寫,甚至你現在可以在loop()裡隨便用delay()也沒關係,因為現在LED閃爍和舵機控制完全用中斷實現
  • Arduino如何多任務(上)
    (Sweep)示例中,同樣使用了delay()函數來控制Sweep的速度。如果把Blink和Sweep兩個示例代碼直接接起來,我們可以發現LED的閃動和舵機掃臂並不是同時進行的。讓我們看一看下面這個經過稍微修改的代碼,這個代碼裡我們可以通過兩個變量來分別控制LED開啟和熄滅的時間。
  • 兩個arduino之間的藍牙通信
    藍牙模塊對玩arduino的朋友來說應該不陌生,網上的教程大多數都是arduino連接藍牙模塊和手機進行通訊,所以我這篇要講的是兩個arduino通過藍牙模塊進行通訊。2)上傳程序後,斷電,再接通重啟設置的主從機才會生效,藍牙模塊上電後紅燈閃爍,連接上其他藍牙模塊後紅燈常亮,第一次連接花費的時間可能會較長3)上面程序僅僅針對的是HC-06主從一體藍牙模塊4)如果要把接收到的數據合成,數字類可以通過*10累加實現,字符串可以通過數組存儲實現數據流合成與截取從板:Arduino Demilanove+HC-05(從機),連接舵機
  • 有了它, 你也可以做出自己的可編程機器人-- Arduino介紹
    這裡想介紹幾個,我個人覺得最有必要說一說的:麵包板breadboard--可以讓你很方便拆接元器件伺服電機--servo在arduino上用的通常是最簡單的「舵機」,因為重量都是9g,也叫9g舵機。有了它,可以讓arduino實現對110v/220v家用電器的控制。其他還有藍牙模組,wifi模組,紅外線模組等等,可以讓你實現通過手機或者遙控器的遠程控制。
  • 小豬學arduino—使用esp8266WIFI模塊實現雙向通信
    今天剛好要在pc/pi上給arduino發指令,手上沒有多餘的esp8266模塊,就拿這個板子來用吧,順便把esp8266模塊的使用方法整理一下。*註:以下方法適用於任何使用esp8266模塊的arduino板子,不論是集成還是外置esp8266的情形(開發版根據實際情況選擇即可)。
  • Arduino用nrf24l01無線通信模塊實現設備一對一雙向收發控制
    在開發一些項目當中可能會用到,這裡介紹用2.4G無線通信模塊nrf24l01來實現這一功能,實際上該模塊的功能遠不止這些,還能夠用來Mesh組網,實現多個設備之間的數據傳輸控制,這裡先介紹一個簡單的案例來了解一下該模塊的使用方法。
  • 好玩的Python——Python玩轉Arduino
    mblock對arduino在線編程的步驟連接arduino到電腦打開mblock軟體選擇對應埠選擇合適的控制板這種方法不是很好玩,這個代碼封裝的比較麻煩,相比於樹莓派最新版的GIPO庫,差的太多,最新的 gpiozero真的超好用的.後面介紹.通過上面的代碼就可以跟arduino愉快的玩耍了注意:b = Arduino('COM15')引號裡面代表的是具體通過那個埠跟arduino進行通訊,這裡我的是'COM15
  • 當樂高遇見arduino:近場控制之藍牙控制
    基於Arduino對高低電平的定義,高於3V即可被識別為高電平,TX接口0V/3.3V的狀態切換可以被識別為高低電平切換,所以TX接口可直接與arduino相連。但RX作為插件板輸入端,必須要遵循3.3V的輸入限制,在使用時需要對arduino輸出的電平信號做降壓,降壓原理就是物理中學到的分壓定律:
  • 如何為Arduino IDE安裝添加庫
    一般新手都會用Arduino的內置示例來做自己的第一個實驗,小燈泡閃爍實驗,舵機實驗等等。由於Arduino是一款非常流行的開源平臺,網上有大量的第三方庫供我們下載,這些庫可以幫助我們實現很多獨立難以完成的任務。 第三方庫其實就是我們從網絡或其它途徑所獲得的開源Arduino 庫。
  • 基於 face_recognition 和 PID 的舵機雲臺人臉識別和跟蹤
    face_recognition 基於 C++ 開源庫 dlib 的深度學習模型,使用 Labeled Faces in the Wild(http://vis-www.cs.umass.edu/lfw/)人臉數據集進行測試,有高達99.38%的準確率。