为什么我的 Arduino 不能处理发出 PWM 信号?

Why can't my Arduino handle to make a PWM signal?

我想控制占空比和占空比的频率来控制一个LED。

float dutycycle = 1000;//base dutycycle is x microseconds
float duty_on = 500;//on-time in microseconds
float multiplicator = 1;//dutycycle multiplicator to tune the frequency of the signal   
float duty_off = dutycycle - duty_on;      

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);//bright
  delayMicroseconds(duty_on*multiplicator); //waiting
  digitalWrite(LED_BUILTIN, LOW);//dark
  delayMicroseconds(duty_off*multiplicator);//waiting
}

现在我认为我的代码意味着 LED 每半毫秒打开和打开。但我也想将 LED 用作频闪仪(例如,开启时间为 500 毫秒,关闭时间为 500 毫秒)。因此,我在我的代码中引入了乘法器,它应该只是延长了开启和关闭时间。

问题是它在这段时间内不起作用,我无法解释原因。如果有人能帮助我,我会很高兴。

溢出。 delayMicroseconds可以取最大值16383。See.

对于较长的情况(500 毫秒),我建议改用 delay,它使用毫秒。