极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 22131|回复: 4

arduino 无法控制pca9685输出pwm波驱动舵机,请高手看看哪个步骤出了问题?

[复制链接]
发表于 2018-4-9 17:18:10 | 显示全部楼层 |阅读模式
本帖最后由 FISHENDER 于 2018-4-9 17:19 编辑

舵机一点反应都没有


代码为:

#include <Wire.h>
#include "Adafruit_PWMServoDriver.h"

// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40);

// 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 ~60 Hz updates
}

// you can use this function if you'd like to set the pulse length in seconds
// e.g. setServoPulse(0, 0.001) is a ~1 millisecond pulse width. its not precise!
void setServoPulse(uint8_t n, double pulse) {
  double pulselength;
  
  pulselength = 1000000;   // 1,000,000 us per second
  pulselength /= 50;   // 60 Hz
  Serial.print(pulselength); Serial.println(" us per period");
  pulselength /= 4096;  // 12 bits of resolution
  Serial.print(pulselength); Serial.println(" us per bit");
  pulse *= 1000;
  pulse /= pulselength;
  Serial.println(pulse);
  pwm.setPWM(n, 0, pulse);
}

void writeServo(uint8_t n,uint8_t angle){
  double pulse;
  pulse=0.5+angle/90.0;
  setServoPulse(n,pulse);
}


void loop() {
    writeServo(0,90);
    writeServo(2,80);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2018-4-9 22:31:51 | 显示全部楼层
mega2560的I2C不在A4,A5
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-11 14:38:34 | 显示全部楼层
通幽境 发表于 2018-4-9 22:31
mega2560的I2C不在A4,A5

谢谢点播,试了试21 20 也不行呢,我的代码有问题吗
回复 支持 反对

使用道具 举报

发表于 2018-4-12 16:19:15 | 显示全部楼层
FISHENDER 发表于 2018-4-11 14:38
谢谢点播,试了试21 20 也不行呢,我的代码有问题吗

上拉了吗?
回复 支持 反对

使用道具 举报

发表于 2018-4-15 11:07:38 | 显示全部楼层
围观特来学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 12:42 , Processed in 0.039864 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表