Arduino 舵机驱动板编程

这篇博客介绍了如何利用Adafruit的arduino库驱动16路I2C接口的舵机驱动板,该驱动板精度为12位,支持设置频率为50Hz。示例代码展示了如何设置0.5ms脉宽的PWM信号,并强调设置工作只需在setup函数中进行,无需在loop中重复设置。
摘要由CSDN通过智能技术生成

需要下载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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值