我想控制占空比的占空比和频率来控制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毫秒)。因此,我在我的代码中引入了乘数,这应该只是延长开启和关闭时间。
问题在于它在这段时间内没有工作,我无法解释自己的原因。如果有人能帮助我,我会非常高兴。