How do you plan to solve it?
#include <stdint.h>
#define PWM_LED 3
uint64_t last_time = 0;
uint32_t time_interval = 0;
uint32_t duty_cycle = 0;
int8_t step = 1;
void setup()
{
pinMode(PWM_LED, OUTPUT);
time_interval = (2000 / 255);
}
void loop()
{
uint64_t current_time = millis();
if(current_time - last_time >= time_interval){
last_time = current_time;
duty_cycle += step;
if(duty_cycle >= 255){
duty_cycle = 255;
step = -1;
time_interval = (1000 / 255);
}
else if(duty_cycle <= 0){
duty_cycle = 0;
step = 1;
time_interval = (2000 / 255);
}
}
analogWrite(PWM_LED, duty_cycle);
}
Add video of output (know more)
Add a photo of your hardware showing the output.
