需要下载Adafruit的arduino库,这个网上搜索一下很多
我的驱动板是16路基于I2C接口通信,这个arduino库底层都做好了,精度是12位(4096)
设置非常简单,设置一下频率50,那么周期是20ms
如果你想要0.5ms脉宽,那么设置的值是
(0.5/20.0)*4096
setPin函数最后一个参数是控制电平是否反转
示例程序设置的是ch0为持续低电平,ch1为持续高电平,ch2为脉宽0.5ms的pwm信号
注意设置只要设置一次即可,即在setup里面设置就可以了,没必要在loop里反复设置
实现源码如下
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
// our servo # counter
//uint8_t servonum = 0;
void setup() {
Serial.begin(9600);
Serial.println("16 channel Servo test!");
pwm.begin();
pwm.setPWMFreq(50); // Analog servos run at ~50 Hz updates
}
void loop() {
//setServoPulse(0, 0.001);
//setServoPulseMS(1, 50);
pwm.setPin