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.
#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));
}
}You Tube Video Link of the task:
