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