用Arduino類庫(kù)驅(qū)動(dòng)舵機(jī)并不是一件難事,如果需要驅(qū)動(dòng)很多電機(jī),就需要要占用更多的引腳,也會(huì)影響到Arduino的處理能力。專門(mén)的舵機(jī)驅(qū)動(dòng)板很好的解決了這個(gè)問(wèn)題。
此舵機(jī)驅(qū)動(dòng)板使用PCA9685芯片,是16通道12bi tPWM舵機(jī)驅(qū)動(dòng),用12個(gè)弓|腳通過(guò)I2C就可以驅(qū)動(dòng)16個(gè)舵機(jī)。不僅如此,你還可以通過(guò)級(jí)聯(lián)的方式最多級(jí)聯(lián)62個(gè)驅(qū)動(dòng)板,總共可以驅(qū)動(dòng)992個(gè)舵機(jī)!
供電部分
大多數(shù)的舵機(jī)設(shè)計(jì)電壓都是在5~6V,尤其在多個(gè)舵機(jī)同時(shí)運(yùn)行時(shí),跟需要有大功率的電源供電。如果直接使用Arduino 5V弓|腳直接為舵機(jī)供電,會(huì)出現(xiàn)一些難以預(yù)測(cè)的問(wèn)題,所以我們建議你能有個(gè)合適的外部電源為驅(qū)動(dòng)板供電。
連接舵機(jī)
大多數(shù)舵機(jī)都是使用標(biāo)準(zhǔn)3線母插頭連接,只要按照對(duì)應(yīng)的引腳插入驅(qū)動(dòng)板就可以了。(地線一般為黑色或棕色、信號(hào)線一般為黃色或白色)
一個(gè)驅(qū)動(dòng)板上最多可以添加16個(gè)舵機(jī)。
驅(qū)動(dòng)板級(jí)聯(lián)
多驅(qū)動(dòng)板級(jí)聯(lián)(最多可級(jí)聯(lián)62個(gè))為你提供更多的擴(kuò)展性,連接方式如下圖所示
為驅(qū)動(dòng)板分配地址
級(jí)聯(lián)的每個(gè)驅(qū)動(dòng)板都需要有一個(gè)唯一的訪問(wèn)地址。每個(gè)驅(qū)動(dòng)板的初始I2C地址是0 X 40,可以通過(guò)右上角的跳線修改I2C地址。用焊錫將一個(gè)跳線連上就表示一個(gè)二進(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
評(píng)論
查看更多