用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、表示显示区中高亮的指令所在的行数
评论
查看更多