文章插圖

文章插圖
arduino學習筆記13-利用串口控制舵機
舵機的旋轉不像普通電機那樣只是轉圈圈 , 它可以根據你的指令旋轉到0至180度之間的任意角度然后精準的停下來 。舵機的轉動的角度是通過調節PWM(脈沖寬度調制)信號的占空比來實現的 。舵機比較多的用于對角度有要求的場合 , 比如機器人、攝像頭、智能小車前置探測器 , 需要在某個范圍內進行監測的移動平臺 。
注意:舵機線一種是:紅、黑、黃(紅色連接 Vcc、黑色連接 GND、黃色連接信號 S)
還有較為常見的一種是:棕、紅、橙(棕色連接 GND、紅色連接 Vcc、橙色連接信號 S)
一、實驗現象
舵機在在0~180°之間來回轉動 。
【Arduino舵機控制板 arduino舵機控制函數】二、實驗器材:控制板、舵機1 個、杜邦線 。
三、實驗所用函數及語句
Ardruino也提供了<Servo.h>庫 , 讓我們使用舵機變得更方便了 。
(1)#include<Servo.h> 載入 Servo.h 庫文件 。
(2)Servo myservo; 建立一個舵機對象 , 名稱為 myservo。
(3)myservo.attach(9); 將引腳 9 上的舵機與舵機對象連接起來 。attach 函數連接一個舵機對象到指定的引腳上 , attch 函數可以有 1 或 3 個參數 。如果使用 3 個函數 , 第一個參數表示引腳 , 第二個參數表示最小角度(0度)的脈沖寬度 , 單位是微秒(默認是 544) , 第三個參數表示最大角度(180度)的脈沖寬度 , 單位是微秒(默認是2400) 。通常情況下 , 只需要設置舵機引腳 , 忽略第二和第三個參數 。
(4)myservo.write(pos); 寫角度到舵機 , 讓舵機轉動到指定角度 。
注:以上語句的書寫格式均為“舵機變量名.具體語句()”例如:myservo.attach(9) 。
下面就來具體分析一個小程序:
#include <Servo.h>//定義頭文件 , 這里有一點要注意 , 可以直接在Arduino軟件菜單欄單擊Sketch>Importlibrary>Servo,調用Servo函數 , 也可以直接#include <Servo.h>,但是在輸入時要注意在#include 與<Servo.h>之間要有空格 , 否則編譯時會報錯 。
四、實驗電路
#include <Servo.h> // 聲明調用Servo.h庫
Servo myservo; // 創建一個舵機對象
int pos = 0; // 變量pos用來存儲舵機位置
void setup() {
myservo.attach(9); // 將引腳9上的舵機與聲明的舵機對象連接起來, 對象名.函數名();不要忘了中間的“.”
}
void loop() {
for(pos = 0; pos < 180; pos += 1){ // 舵機從0°轉到180° , 每次增加1°
myservo.write(pos); // 給舵機寫入角度
delay(15); // 延時15ms讓舵機轉到指定位置
}
for(pos = 180; pos>=1; pos-=1) { // 舵機從180°轉回到0° , 每次減小1°
myservo.write(pos); // 寫角度到舵機
delay(15); // 延時15ms讓舵機轉到指定位置
}
}
