ESC raspberry pi 上的 PWM 频率和占空比

PWM frequency and duty cycle on raspberry pi for ESC

我正在使用 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);

可以在校准期间调整 QBrain 的预期占空比。 20 毫秒 window 是标准,但高值和低值有一些差异。理想情况下,您应该校准低 1 毫秒和高 2 毫秒。

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

  1. 向电调发送一个2ms周期为20ms的高电平脉冲;然后,开机。
  2. 等待发出哔哔声。
  3. 发送 1ms 高脉冲和 20ms window 到 ESC。
  4. 等待发出哔哔声。
  5. 关闭电调

切勿开启电调全油门,否则电调会重新进入校准模式。建议以低油门启动。

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

如果您不确定输出引脚产生的周期是多少,那么您应该使用示波器对其进行范围测量并进行测量。 ESC 只能做它被告知的事情。