【发布时间】:2016-08-17 20:02:19
【问题描述】:
我正在使用 Raspberry Pi 3 尝试通过 QBrain ESC 控制无刷直流电机。
为此,我使用 RPI 闪电驱动程序来创建 PWM DMA 信号。不幸的是,我所做的任何事情都不会让电机转动。
谁能告诉我应该使用什么频率和占空比来输出到 ESC?谷歌搜索会建议 50Hz 的 PWM 频率,占空比在 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 毫秒和 2 毫秒之间,而不是 在 1000 毫秒和 2000 毫秒之间。如果是这种情况,那么你的代码应该是
ScaleBetween(userInputThrust, 0.05, 0.1);,假设ScaleBetween做了它所说的。要调试这类事情,您可能会省去很多麻烦,只需将示波器连接到引脚 12 并查看它输出的信号类型。试验和错误只能让你走这么远。 -
你是对的,1ms 到 2ms,错字了。我真的很想设置一个范围,但遗憾的是没有。
-
我现在已将帖子更正为正确的值
标签: raspberry-pi windows-10-iot-core pwm