用于ESC

时间:2016-08-17 20:02:19

标签: raspberry-pi windows-10-iot-core pwm

我使用Raspberry Pi 3尝试通过QBrain ESC控制无刷直流电机。

为此,我使用RPI闪电驱动程序创建PWM DMA信号。不幸的是,我所做的一切都不会让电机转动。

有人可以告诉我应该用什么频率和占空比输出到ESC?谷歌搜索建议PWM频率为50Hz,占空比介于0.05%和0.1%之间(给出1ms到2ms之间的脉冲),但这对我来说似乎不起作用。

这里的示例代码(C#windows IoT):

        var controllers = await PwmController.GetControllersAsync(LightningPwmProvider.GetPwmProvider());
        var pwmController = controllers[1];
        pwmController.SetDesiredFrequency(50);

        int pin = 12;

        var motor = pwmController.OpenPin(pin);
        motor.Start();

        do
        {
            double userInputThrust = ...value between 0 and 100 provided by user...
            // scale user input from 0 to 100 to between 0.05 and 0.1
            double thrust = ScaleBetween(userInputThrust, 0.05, 0.1);
            motor.SetActiveDutyCyclePercentage(thrust);
        } while (true);

1 个答案:

答案 0 :(得分:0)

校准期间可以调整QBrain预期的占空比。 20ms窗口是常态,但高值和低值有一些差异。理想情况下,您应该校准1ms低和2ms高。

QBrain ESC使用Atmel微控制器和SimonK固件。因此,您应该遵循SimonK的校准程序,也可以在线找到。程序如下:

  1. 向ESC发送2ms高脉冲,周期为20ms;然后,打开电源。
  2. 等待发出哔哔声。
  3. 向ESC发送1ms高脉冲,20ms窗口。
  4. 等待发出哔哔声。
  5. 关闭电源。
  6. 确保您不要在全油门时打开ESC,否则ESC将重新进入校准模式。建议在低油门时接通电源。

    校准后,您应该注意到ESC将开始以1070us高脉冲开启电机20ms。 (即在1000us和1070us之间有一个死区)

    如果您不确定输出引脚产生的周期,则应使用示波器对其进行测量并进行测量。 ESC只能做它所说的。