LEDs Fading Speed Control

Solving Approach:

How do you plan to solve it?

To solve this problem, I have created a new function for the delay which reads the pot value and maps the value to respective new range from 10 to 0. Here 10 to 0 is the range because, we require fast blinking when knob is 0% turned i.e. ADC value will be 1024.

Code

#define led1 3
#define led2 5
#define led3 6
#define led4 9
#define led5 10

#define pot A0
int value = 0;

void setDelay(int delay_val){
  delay_val = map(delay_val,0,1023,10,1);
  delay(delay_val);
}

void setup(){
  pinMode(led1,OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5,OUTPUT);

  pinMode(pot, INPUT);
}

void loop(){
  while(value<255){
    analogWrite(led1, 255-value);
    analogWrite(led2, value);
    analogWrite(led3, 255-value);
    analogWrite(led4, value);
    analogWrite(led5, 255-value);
    value++;
    setDelay(analogRead(pot));
  }
  while(value>0){ // Decrease value loop
    analogWrite(led1, 255-value);
    analogWrite(led2, value);
    analogWrite(led3, 255-value);
    analogWrite(led4, value);
    analogWrite(led5, 255-value);
    value--;
    setDelay(analogRead(pot));
  }
}

Output Video:

You Tube Video Link of the task:

Photo of Output

Upvote
Downvote

Submit Your Solution

Note: Once submitted, your solution goes public, helping others learn from your approach!