#define MOTOR_PIN 7
#define PWM_FREQ 500000 // 设置频率
#define PWM_RESOLUTION 6 // 计数位数,取值0 ~ 20
#define MAX_DUTY_CYCLE 63 // 2^10 - 1, if PWM resolution is 6, then it is 2^6 - 1 = 63
#define DUTY_COUNT 1
int dutyCycle = 0;
bool duty_flag = true;
void setup()
{
Serial.begin(115200);
ledcAttach(MOTOR_PIN, PWM_FREQ, PWM_RESOLUTION);
}
void loop()
{
float duty = dutyCycle*100/MAX_DUTY_CYCLE;
Serial.print("Duty Cycle:");
Serial.print(duty);
Serial.println("%");
if(dutyCycle == 0)
{
duty_flag = true;
}
if(dutyCycle == MAX_DUTY_CYCLE)
{
duty_flag = false;
}
if (duty_flag == true)
{
dutyCycle = dutyCycle + DUTY_COUNT;
}else
{
dutyCycle = dutyCycle - DUTY_COUNT;
}
ledcWrite(MOTOR_PIN, dutyCycle);
delay(100);
}