Arduino 舵机驱动板编程

需要下载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 
#include 

// 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(0,0,0);
  pwm.setPin(1,4096,0);
  pwm.setPin(2,(0.5/20.0)*4096,0);
}

逻辑分析仪显示结果

Arduino 舵机驱动板编程_第1张图片





你可能感兴趣的:(Arduino 舵机驱动板编程)