【发布时间】:2022-07-19 20:24:53
【问题描述】:
我正在使用带有 esp-idf 的 ESP32 来生成 PWM 以运行电机,这是我的初始化函数:
mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0A, LOW_MOTOR_PWM);
pwm_config.frequency = 5000;
pwm_config.cmpr_a = 60.0;
pwm_config.counter_mode = MCPWM_UP_COUNTER;
pwm_config.duty_mode = MCPWM_DUTY_MODE_0;
mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_0, &pwm_config);
mcpwm_stop(MCPWM_UNIT_0, MCPWM_TIMER_0);
mcpwm_set_signal_low(MCPWM_UNIT_0, MCPWM_TIMER_0, MCPWM0A);
这是我的停止功能:
mcpwm_set_signal_low(MCPWM_UNIT_0, MCPWM_TIMER_0, MCPWM0A);
mcpwm_stop(MCPWM_UNIT_0, MCPWM_TIMER_0);
mcpwm_set_signal_low(MCPWM_UNIT_0, MCPWM_TIMER_0, MCPWM0A);
我遇到的问题是电机停止但对我来说时间太长了。我看了看它需要将近 300 毫秒的电信号。这正常吗?有没有办法让它更快停止?
谢谢你:)
【问题讨论】:
-
你用的是什么电机?我假设你的电机有一个内部电机控制器!?根据您的电机尺寸和用例,旋转质量可能是一个因素......
标签: esp32 pwm esp-idf motordriver