|
楼主 |
发表于 2019-10-29 11:05:42
来自手机
|
显示全部楼层
:57 | 只看该作者 |只看大图  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); } |
|