初始化电机驱动,建议放在Setup()中,主要包含两个操作:
initMotor();
自动判断电机驱动板的类型并初始化配置。电机驱动板需是硬件支持列表中已有的型号。
initMotor(int type);
如果自动识别失败,可以使用此函数输入驱动板类型。数据为16进制整数。
initMotor(int inA, int inB, int pwmA, int pwmB);
如果是其他类型的4线制驱动板,可以使用此函数。
initMotor(int in1, int in2, int in3, int in4, int pwmA, int pwmB);
如果是其他类型的6线制驱动板,可以使用此函数。
type:16进制整数,例如0xDF表示DFROBOT品牌。目前支持0xDF(代表DFROBOT),0xED(代表SEEED)
inA:数字或模拟端口的管脚,4线模式输入控制端口A
inB:数字或模拟端口的管脚,4线模式输入控制端口B
in1:数字或模拟端口的管脚,6线模式输入控制端口1
in2:数字或模拟端口的管脚,6线模式输入控制端口2
in3:数字或模拟端口的管脚,6线模式输入控制端口3
in4:数字或模拟端口的管脚,6线模式输入控制端口4
pwmA:数字PWM管脚,4线或6线模式输入PWM端口A
pwmA:数字PWM管脚,4线或6线模式输入PWM端口B
关于PWM管脚说明:在大多数arduino板(ATmega168或ATmega328),只有引脚3,5,6,9,10和11可以实现该功能。
逻辑值 initMotor() 和 initMotor(int type)在初始化成功后返回逻辑1,失败则返回逻辑0,以便判断是否初始化正确。其他格式initMotor()函数无返回值
// DCMotorControl // Demo function:The application method to drive the 2x DC motor. // Author:Leo.Zhu // Date:23 July, 2013 // Hardware support list // 1. DFRobot L298 Shield 2A // 2. DFRobot L293 Shield 1A #include "BOXZ.h" int pin_inA = 4; int pin_inB = 7; int pin_pwmA = 5; int pin_pwmB = 6; int speedA_value = 150; int speedB_value = 150; void setup() { boxz.initMotor(pin_inA,pin_inB,pin_pwmA,pin_pwmB); //四线制模式,适用于DFRobot或同系列的电机驱动 } void loop() { //Simple control boxz.goForward(); delay(2000); boxz.stop(); delay(3000); }