|
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,例程源码:
- /***************************************************
- 示例:16伺服舵机。
- 效果:伺服向前转180度,然后向转180度....
- by DOIT. http://www.doit.am
- ****************************************************/
- #include <Wire.h>
- #include <ServoDriver.h>
- ServoDriver pwm = ServoDriver();
- #define SERVOMIN 102 // 这是“最小”脉冲长度计数(满分4096)0度
- #define SERVOMAX 512 // 这是“最大的”脉冲长度计数(满分4096)180度
- // 重要提示:舵机号#
- uint8_t servonum = 0;
- void setup()
- {
- pwm.begin();
- pwm.setPWMFreq(50); // 舵机在50Hz运行
- }
- void loop()
- {
- // 在一个时间驱动一台舵机
- for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++)
- {
- pwm.setPWM(servonum, 0, pulselen);
- }
- delay(2000);
- for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen--)
- {
- pwm.setPWM(servonum, 0, pulselen);
- }
- delay(2000);
- }
复制代码
5,实物连接及效果图:
|
-
1.jpg
(93.76 KB, 下载次数: 1623)
-
2.jpg
(101.7 KB, 下载次数: 1530)
|