一切连接良好的首要标志是告诉我们传感器读数是否良好。要测试传感器,请浏览库示例examples/utils/sensor_test
并找到适合您的传感器的示例。该示例将具有如下结构:
#include
Encoder encoder = Encoder(2, 3, 500);
// interrupt routine intialisation
void doA(){encoder.handleA();}
void doB(){encoder.handleB();}
void setup() {
// monitoring port
Serial.begin(115200);
// initialise encoder hardware
encoder.init();
// hardware interrupt enable
encoder.enableInterrupts(doA, doB);
Serial.println("Encoder ready");
_delay(1000);
}
void loop() {
// display the angle and the angular velocity to the terminal
Serial.print(encoder.getAngle());
Serial.print("\t");
Serial.println(encoder.getVelocity());
}
确保更改传感器参数以适应您的应用,例如引脚编号、每转脉冲数、总线地址等。如果您不确定某些参数,请务必阅读传感器文档。
如果您的传感器连接良好并且一切正常,您应该在串行终端中输出传感器角度和速度。
☑️简单的测试
确保测试电机旋转一圈可以提供 6.28弧度的传感器角度。
传感器工作后,您可以继续进行驱动程序测试。测试驱动程序的最简单方法是使用库示例。如果您有充足的时间,可以使用examples/utils/driver_standalone_test
文件夹中的示例测试驱动程序。这些示例将驱动器作为独立模块进行测试,您可以使用它们为任何驱动器的相位设置任何电压值。
#include
// BLDC driver instance
BLDCDriver3PWM driver = BLDCDriver3PWM(9, 5, 6, 8);
void setup() {
// pwm frequency to be used [Hz]
driver.pwm_frequency = 50000;
// power supply voltage [V]
driver.voltage_power_supply = 12;
// Max DC voltage allowed - default voltage_power_supply
driver.voltage_limit = 12;
// driver init
driver.init();
// enable driver
driver.enable();
_delay(1000);
}
void loop() {
// setting pwm (A: 3V, B: 1V, C: 5V)
driver.setPwm(3,1,5);
}
☑️简单的测试
确保所有相输出PWM信号,您可以尝试在每相和地之间连接一个小LED灯或用万用表测量它。
如果您已经连接了电机并且您确定您的驱动器工作正常,我们建议您使用examples/motion_control/open_loop_motion_control
. 如果您的驱动程序与示例中提供的驱动程序不同,请查看驱动程序文档并找到适合您的驱动程序和代码。此外,您可以浏览 tehexamples/utils/driver_standalone_test
文件夹中的示例并查看其中使用的示例。
现在这里是一个开环速度控制的例子BLDCDriver3PWM
:
#include
// Open loop motor control example
#include
// 无刷直流电机及驱动器实例
// BLDCMotor motor = BLDCMotor(pole pair number, phase resistance (optional) );
BLDCMotor motor = BLDCMotor(11);
// BLDCDriver3PWM driver = BLDCDriver3PWM(pwmA, pwmB, pwmC, Enable(optional));
BLDCDriver3PWM driver = BLDCDriver3PWM(9, 5, 6, 8);
// commander类对象
Commander command = Commander(Serial);
void doTarget(char* cmd) { comman