arduino32路舵机驱动板(开源可自制)

导航在这里:白泽六足机器人_arduino_v1

介绍

先放资料

立创开源地址:https://oshwhub.com/allen-liu/esp8266-pca9685-di-32-lu-duo-ji-kuo-zhan-ban

B站演示地址:https://www.bilibili.com/video/BV1u34y1Y7PG?spm_id_from=333.999.0.0

效果

arduino 32路舵机驱动板(开源)

这是一块32路舵机驱动板,做舵机机器人非常方便。主控用的esp8266.

电源用的5V的电池,电池直接给舵机供电,经过压降之后产生3.3V电压给esp8266模组供电。

这块板儿主要是用于控制sg90舵机,就是那种蓝色舵机,或者mg90s舵机。

后续会升级,升级后可以控制5-12V的pwm舵机。

这样就可以控制高压的舵机,比如型号为mg996r或mg995的舵机。

3D图片如下图所示:

arduino32路舵机驱动板(开源可自制)_第1张图片

实物图如下:

arduino32路舵机驱动板(开源可自制)_第2张图片

测试代码:

/*************************************************** 
 对于ARDUINO UNOS,这是SCL->模拟5,SDA - >模拟4
  ****************************************************/
  
#include 
#include 
 
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x41);
 
#define SERVOMIN  102               //0.5/20 * 4096 = 102
#define SERVOMAX  512               //2.5/20 * 4096 = 512
 
void setup() {
  Serial.begin(115200);
  Serial.println("16 channel Servo test!");
  
  pwm.begin();
  pwm1.begin();
  pwm.setPWMFreq(50);  // Analog servos run at ~50 Hz updates
  pwm1.setPWMFreq(50);  // Analog servos run at ~50 Hz updates
}
 
void loop() {
   for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++) {
        for(int i=0;i<16;i++)
        {
          pwm.setPWM(i, 0, pulselen);
          pwm1.setPWM(i, 0, pulselen);
        }
        delayMicroseconds(200);
        ESP.wdtFeed();                    //喂狗防止复位
   }
   for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen--) {
        for(int i=0;i<16;i++)
        {
          pwm.setPWM(i, 0, pulselen);
          pwm1.setPWM(i, 0, pulselen);
        }
        delayMicroseconds(200);
        ESP.wdtFeed();                    //喂狗防止复位
   }
}

你可能感兴趣的