fixed leo's broken dc motor

This commit is contained in:
Justin Chow
2026-02-28 17:55:40 -05:00
committed by Johnathon Slightham
parent 71ff7b63ac
commit e9edc33b96

View File

@@ -13,14 +13,14 @@
#define HIGH_DUTY 1000 #define HIGH_DUTY 1000
#define FWD_CHANNEL LEDC_CHANNEL_1 #define FWD_CHANNEL LEDC_CHANNEL_1
#define REV_CHANNEL LEDC_CHANNEL_0 #define REV_CHANNEL LEDC_CHANNEL_0
#define DEADZONE 0.1 #define DEADZONE 0.5
#define KP 0.07 #define KP 0.07
#define KI 0 #define KI 0
#define KD 0.065 #define KD 0.065
#define MIN_PWM_DUTY 675 #define MIN_PWM_DUTY 675
#define MAX_PWM_DUTY 1024 #define MAX_PWM_DUTY 1024
#define TICKS_PER_ROTATION 14.0 #define TICKS_PER_ROTATION 14.0
#define GEAR_RATIO 298.0 #define GEAR_RATIO 210
DCMotorActuator::DCMotorActuator() { DCMotorActuator::DCMotorActuator() {
ledc_timer_config_t ledc_timer = { ledc_timer_config_t ledc_timer = {
@@ -139,16 +139,16 @@ void DCMotorActuator::pid_task(char *args) {
} }
if (control > 0) { if (control > 0) {
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL, 0)); ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL, pwm));
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL)); ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL));
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL, pwm));
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL));
} else {
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL, 0)); ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL, 0));
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL)); ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL));
} else {
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL, pwm));
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, REV_CHANNEL));
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL, pwm)); ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL, 0));
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL)); ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, FWD_CHANNEL));
} }