Servo Driver Board

来自丢石头百科
Servo Driver Board
Servo Driver Board 示意图.png
基本信息

分类: 舵机

品牌: 丢石头

功能简介
特性
  • 舵机控制/PWM输出

接口

I2C接口

相关产品

{{{related}}}

前言

本产品是通过PCA9685芯片扩展16路舵机控制或者PWM输出,每个通道12位分辨率。通过I2C接口控制,无需占用额外的引脚。不仅如此,还可以通过级联的方式最多级联62个驱动板,总共可以驱动992个舵机。适用于控制机械手臂,以及各种舵机机器人。

产品特性

  • 输入电压VCC:2.3V-5.5V,最大耐压值5.5V
  • 逻辑电压:3.3V
  • 舵机电压:≤6V,一般为5V
  • 驱动芯片:PCA9685(内置25MHz晶振,可不连接外部晶振,也可以连接外部晶振,最大50MHz)
  • 控制接口:I2C(支持高达16路PWM输出,每路12位分辨率(4096级))
  • 固定孔通径:3.0mm

硬件说明

  • Servo Driver Board 模块说明.png
  • 控制引脚:
    • GND:电源负极
    • OE:使能端,一般不接
    • SCL:IIC时钟线
    • SDA:IIC数据线
    • VCC:电源正极,电路板工作电压(主要是给驱动芯片供电)
    • V+:舵机工作电压。当接入舵机数量较少时,可从此处供电
  • 舵机供电端:舵机工作电压,与VCC相通
  • 主控芯片:PCA9685,具备IIC通信,同时内置了PWM驱动器和一个时钟,最大支持16路舵机控制
  • IIC地址选择:7位I2C地址为:0x80 + A5:A0+R/W,A5到A0如果不做任何处理的话是0,想要把哪一位置1就把那个引脚焊到一起。初始I2C地址是0x80(写入)
  • 级联控制端;当多个驱动板级联时可通过该引脚扩展
  • 舵机控制端/PWM输出端:16路舵机控制端,黄色为PWM控制线,红色为舵机电源线,黑色为地线。舵机编号从左开始,最左侧为一号舵机,以此类推共十六个舵机

使用说明

精度说明

  • PCA9685的分辨率是12位,即占空比控制时,0-4096对应的占空比为0-100,在控制舵机的时候,控制信号是0.5ms-2.5ms,周期20ms,所以控制舵机角度不会有太高的分辨率,对舵机控制精度较高的地方不建议使用。
  • 以舵机SG90为例,舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。那么对应的控制关系是这样的:
    • 180度伺服
    • Micro Servo 控制原理.png
  • 则对该舵机而言:
    • 舵机控制的PWM周期为20ms
  • 旋转x度是对应的高电平时间t1=0.5ms+(x/180)*(2.5ms-0.5ms)
  • 旋转x度是对应的计数值t2=(4096*t1)/20ms

地址分配

  • PCA9685的器件地址是由引脚A0,A1,A2,A3,A4,A5共同决定。由于有6个引脚共同决定器件地址,因此,可以有64个器件地址,但由于该IC上电便保留LED All Call address (0xE0,0111 0000)以及Software Reset address(0x06,0000 0110),实际仅有62个可用器件地址,因此,理论上,1个I2C接口可控制16*62=992路PWM。
  • 根据芯片手册,地址位的寄存器一共8位,其中最高位固定是1,A0-A5这六位是用户可更改的,而其中最关键的一位是R/W位,这一位主要是决定了读还是写,置1时为读,置0时为写。所以在写程序的时候,PCA9685的地址应把R/W位加上。在写的时候,发送地址位是0x80,在读的时候,发送的地址位是0x81。
    • Servo Driver Board 使用说明0.png
  • 模块级联时每个驱动板都需要有一个唯一的访问地址。可以通过A5-A0的跳线修改I2C地址。用焊锡将一个跳线连上就表示一个二进制数字“1”,断开则表示二进制数字“0”。如下图所示,该驱动板的IIC地址应为0x82(写)/0x83(读)
    • Servo Driver Board 使用说明1.png

接线说明

单个驱动板

  • VCC引脚只是为芯片供电,如果要连接舵机或者LED灯,就使用V+引脚供电,V+引脚支持3.3-6V的电源
  • 此驱动板采用IIC接线方式,实际使用时将驱动板的SCL、SDA引脚与MCU对应的IIC引脚相连即可
  • 大多数舵机都是使用标准3线母插头连接,只要按照对应的引脚插入驱动板就可以了。(地线一般为黑色或棕色、信号线一般为黄色或白色)
  • Servo Driver Board 使用说明2.png

驱动板级联(以Arduino UNO为例)

  • 多驱动板级联:最多可级联62个
  • Servo Driver Board 使用说明3.png

参考例程

数据手册