四博智联产品售后

标题: Arduino扩展板驱动舵机的简单实例 [打印本页]

作者: linXJ    时间: 2016-8-3 11:00
标题: Arduino扩展板驱动舵机的简单实例
1,实验材料:
ESPDUINO板1个,Arduino 2 Motor && 16 Servo Drive Shield 扩展板1个,电池盒及2节3.7V干电池,舵机1个;
2,硬件连接:
将扩展板对应插在ESPDUINO板上,装上2节电池的电池盒电源正负极分别接扩展板的vs和GND(右边两个接口),用一个短路块(跳线帽插在靠近扩展板电源的VIN和VS上面(4个管脚的中间两个)),舵机线对应插在扩展板的16路舵机管脚(黄色线为信号线,接PWM,红色线接VS,绿色线接GND);
3,实验原理:
通过扩展板上面集成的芯片输出PWM波控制舵机正反转,从而实现对舵机的控制;
4,例程源码:
  1. /***************************************************
  2.   示例:16伺服舵机。
  3.   效果:伺服向前转180度,然后向转180度....
  4.   by DOIT. http://www.doit.am
  5. ****************************************************/
  6. #include <Wire.h>
  7. #include <ServoDriver.h>

  8. ServoDriver pwm = ServoDriver();

  9. #define SERVOMIN  102 // 这是“最小”脉冲长度计数(满分4096)0度
  10. #define SERVOMAX  512 // 这是“最大的”脉冲长度计数(满分4096)180度

  11. // 重要提示:舵机号#
  12. uint8_t servonum = 0;

  13. void setup()
  14. {
  15.   pwm.begin();
  16.   pwm.setPWMFreq(50);  // 舵机在50Hz运行
  17. }

  18. void loop()
  19. {
  20.   // 在一个时间驱动一台舵机
  21.   for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++)
  22.   {
  23.     pwm.setPWM(servonum, 0, pulselen);
  24.   }
  25.   delay(2000);
  26.   for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen--)
  27.   {
  28.     pwm.setPWM(servonum, 0, pulselen);
  29.   }
  30.   delay(2000);
  31. }
复制代码

5,实物连接及效果图:

1.jpg (93.76 KB, 下载次数: 1173)

1.jpg

2.jpg (101.7 KB, 下载次数: 1075)

2.jpg





欢迎光临 四博智联产品售后 (http://bbs.doit.am/) Powered by Discuz! X3.2