Arduino SimpleFOC库-003-入门分步指南

1. 测试传感器

一切连接良好的首要标志是告诉我们传感器读数是否良好。要测试传感器,请浏览库示例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弧度的传感器角度。

2.测试驱动程序

传感器工作后,您可以继续进行驱动程序测试。测试驱动程序的最简单方法是使用库示例。如果您有充足的时间,可以使用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

你可能感兴趣的:(html,arm,单片机,mcu)