#define LED_PIN 9
#define MIN_R 50
#define MAX_R 200
int r = 126;
int rv = 0;
int ra = 0;
void setup() {
// put your setup code here, to run once:
TCCR2B = TCCR2B & B11111000 | B00000010; // for PWM frequency of 3921.16 Hz D3 D11
TCCR1B = TCCR1B & B11111000 | B00000010; // for PWM frequency of 3921.16 Hz D9 D10
pinMode(LED_PIN, OUTPUT);
Serial.begin(115200);
display();
}
void loop() {
// put your main code here, to run repeatedly:
update();
display();
delay(10);
}
void display(){
analogWrite(LED_PIN, r);
Serial.println(r);
}
void update(){
ra += random(-3,3);
rv += ra;
r += rv;
if(r < MIN_R){
rv = (MIN_R - r);
ra = -ra*0.5;
r = MIN_R;
update();
} else if(r > MAX_R) {
rv = (MAX_R - r);
r = MAX_R;
ra = -ra*0.1;
update();
}
}