用Arduino類庫驅(qū)動舵機(jī)并不是一件難事,如果需要驅(qū)動很多電機(jī),就需要要占用更多的引腳,也會影響到Arduino的處理能力。專門的舵機(jī)驅(qū)動板很好的解決了這個問題。
此舵機(jī)驅(qū)動板使用PCA9685芯片,是16通道12bi tPWM舵機(jī)驅(qū)動,用12個弓|腳通過I2C就可以驅(qū)動16個舵機(jī)。不僅如此,你還可以通過級聯(lián)的方式最多級聯(lián)62個驅(qū)動板,總共可以驅(qū)動992個舵機(jī)!
供電部分
大多數(shù)的舵機(jī)設(shè)計電壓都是在5~6V,尤其在多個舵機(jī)同時運(yùn)行時,跟需要有大功率的電源供電。如果直接使用Arduino 5V弓|腳直接為舵機(jī)供電,會出現(xiàn)一些難以預(yù)測的問題,所以我們建議你能有個合適的外部電源為驅(qū)動板供電。
連接舵機(jī)
大多數(shù)舵機(jī)都是使用標(biāo)準(zhǔn)3線母插頭連接,只要按照對應(yīng)的引腳插入驅(qū)動板就可以了。(地線一般為黑色或棕色、信號線一般為黃色或白色)
一個驅(qū)動板上最多可以添加16個舵機(jī)。
驅(qū)動板級聯(lián)
多驅(qū)動板級聯(lián)(最多可級聯(lián)62個)為你提供更多的擴(kuò)展性,連接方式如下圖所示
為驅(qū)動板分配地址
級聯(lián)的每個驅(qū)動板都需要有一個唯一的訪問地址。每個驅(qū)動板的初始I2C地址是0 X 40,可以通過右上角的跳線修改I2C地址。用焊錫將一個跳線連上就表示一個二進(jìn)制數(shù)字“1”。
Address = C X 40
Board 0:
Offset = binary 00000 (默認(rèn))
Board 1: Address= 0x41Offset= binary 00001(如上圖,接上A0)
Board 2: Address= 0x42 Offset= binary 00010 (接上A1)
Board 3: Address= C x43 Offset= binary 00011(接上AO和A1)
Board 4: Address= 0x44 Offset= binary 00100 (接上A2)
以此類推
代碼示例:
#include 《Wire.h》
#include
《Adafrui t_PWMServoDriver.h》
Adafrui t_PWMServoDriver pwm1二
Adafrui t_PWMServoDriver (0 X 40);
Adafruit_PWMServoDriver pwm2 =
Adafrui t_PMServoDriver (0 X 41);
void setup() {
Serial.begin(9600);
Serial.println(“16 chanel
PWM test!”);
pwm1.begin();
//
pwm1.setPWMFreq(1600);
Thi s is the maximum PWM[ frequency
pwm2.begi n();
pwm2.setPWMFreq(1600); //
Thi s is the maximum PWM[ frequency
串口指令說明:
舵機(jī)移動指令
指令格式:#(舵機(jī)號)P(脈沖寬度)………#(舵機(jī)號)P(脈沖寬度)T(移動時間)
舵機(jī)號:1~16
脈沖寬度:500~2500,對應(yīng)角度0~180度
移動時間:從現(xiàn)在位置移動到指定位置所需的時間,單位ms,時間越短舵機(jī)反應(yīng)越快,但過快舵機(jī)則反應(yīng)不過來,一般在定在100ms以上
:回車符,指令結(jié)束符,也可寫成0x0d,0x0a
例如:#1P1000T300
表示讓第1路舵機(jī)移動到1000us脈寬的位置,即45度,使用的時間為300ms
#1P500#2P1000#3P1500T200
表示讓第1路,第2路和第3路分別移動到500us脈寬,1000us脈寬,1500us脈寬的位置上,
即0度,45度,90度,各自使用的時間為200ms
動作組指令
指令格式:#(組號)G(循環(huán)次數(shù))C
例如:#1G3C
表示按順序依次執(zhí)行動作組1,動作組2,和動作組3,這個過程循環(huán)3次完畢
以上指令注意大小寫
舵機(jī)接線注意事項(xiàng)
舵機(jī)的接頭從左到右依次為信號線,VCC,GND。
舵機(jī)接上舵機(jī)控制板時就按圖上所示,兩邊信號線都朝里面。
16路舵機(jī)調(diào)試軟件使用說明
使用USB轉(zhuǎn)串口模塊連接調(diào)試方法:
1,首先需要用usb轉(zhuǎn)串口模塊連接舵機(jī)控制板,用長的3P連接線分別GND對應(yīng)GND,TXD對應(yīng)RXD,RXD對應(yīng)TXD連接。如圖,(套件里配的線顏色是隨機(jī)的)
2,接著在“STC擴(kuò)展板使用資料”壓縮包里找到“CP210x_VCP_Win2K_XP_S2K3”安裝usb轉(zhuǎn)串口的驅(qū)動,安裝完成后,插上usb轉(zhuǎn)串口模塊,在設(shè)備管理器——端口(COM和LPT)里確認(rèn)串口號(如圖)。
3,給舵機(jī)控制板供電,D2電源指示燈會亮起來。不要試圖用USB供電來測試舵機(jī),usb的電流只有500ma,一個舵機(jī)的電流需求就在500~1000ma了,用usb供電結(jié)果只會燒板子。
4,打開16路舵機(jī)調(diào)試軟件,串口選擇成剛才確認(rèn)的串口號,波特率默認(rèn)固定為115200,這時軟件會自動打開對應(yīng)串口,調(diào)試軟件跟舵機(jī)控制板的通訊就開始了(如圖)。
單路舵機(jī)調(diào)試窗口:
下面的拉桿是可以拉動的,上方左邊是角度值,右邊是脈寬值,隨著拉桿的移動而變動,角度范圍0~180度,脈寬范圍是500~2500。脈寬值是可以直接輸入指定值的,比如輸入2500,當(dāng)前小窗口里角度會變成180度,下方拉桿上的滑塊會移到最右邊,同時對應(yīng)的舵機(jī)也會轉(zhuǎn)到180度位置。
動作調(diào)試區(qū)
單個動作的移動時間,時間框里的數(shù)值可以改寫,默認(rèn)為300ms
動作指令顯示區(qū)
添加:將當(dāng)前調(diào)試的舵機(jī)指令添加到顯示區(qū)
插入:將當(dāng)前調(diào)試的舵機(jī)指令插入到顯示區(qū)中高亮指令的下方
刪除:將顯示區(qū)中高亮指令刪除
保存:將顯示區(qū)的所有動作指令保存為txt格式的文本文檔,格式為**.txt例如001.txt,注意后綴txt一定要寫
導(dǎo)入:將保存的動作指令文本導(dǎo)入到顯示區(qū)中
移除:將顯示區(qū)中的所有動作指令刪除,清空
運(yùn)行:從上到下依次按單個動作的移動時間發(fā)送給舵機(jī)板單個動作指令,顯示區(qū)就會高亮顯示正在運(yùn)行的指令
暫停:在運(yùn)行時點(diǎn)擊將會暫停運(yùn)行動作指令循環(huán)運(yùn)行:前面方框內(nèi)打勾表示運(yùn)行會一直循環(huán)下去,默認(rèn)不打勾
4、表示顯示區(qū)中高亮的指令所在的行數(shù)
評論
查看更多