Solving Approach:

How do you plan to solve it?

 

 

Code

#include <stdint.h>   

/* PWM output pins for each LED */
#define PWM_LED1 3
#define PWM_LED2 5
#define PWM_LED3 6
#define PWM_LED4 9
#define PWM_LED5 10

/* Analog input pin for the potentiometer */
#define POT_PIN A0

/* Stores the potentiometer value scaled to 0–255 */
uint8_t pot_value = 0;

void setup()
{
  /* Configure all LED pins as outputs so PWM can drive them */
  pinMode(PWM_LED1, OUTPUT);
  pinMode(PWM_LED2, OUTPUT);
  pinMode(PWM_LED3, OUTPUT);
  pinMode(PWM_LED4, OUTPUT);
  pinMode(PWM_LED5, OUTPUT);
}

void loop()
{
  /*
   * Read the potentiometer:
   *  - analogRead() returns 0–1023 (10-bit ADC)
   *  - Right-shift by 2 divides by 4
   *  - Result is scaled to 0–255 to match PWM resolution
   */
  pot_value = (analogRead(POT_PIN) >> 2);

  /*
   * LED 1 range:
   * pot_value from 1 to 51
   * Brightness is directly proportional to pot_value
   */
  if ((pot_value >= 0) && (pot_value < 51)) {
    analogWrite(PWM_LED1, (5 * pot_value));
  }

  /*
   * LED 2 range:
   * pot_value from 52 to 101
   * Modulo (%) is used to create a local 0–50 range
   * This value is then scaled to PWM range
   */
  if ((pot_value >= 51) && (pot_value < 102)) {
    analogWrite(PWM_LED2, (5 * (pot_value % 51)));
  }

  /*
   * LED 3 range:
   * pot_value from 103 to 152
   * Modulo 102 attempts to reset brightness at the start of this segment
   */
  if ((pot_value >=102) && (pot_value < 153)) {
    analogWrite(PWM_LED3, (5 * (pot_value % 102)));
  }

  /*
   * LED 4 range:
   * pot_value from 154 to 203
   * Modulo 153 is used to derive a local brightness value
   */
  if ((pot_value >= 153) && (pot_value < 204)) {
    analogWrite(PWM_LED4, (5 * (pot_value % 153)));
  }

  /*
   * LED 5 range:
   * pot_value from 205 to 254
   * Modulo 204 is used to derive a local brightness value
   */
  if ((pot_value >= 204) && (pot_value < 255)) {
    analogWrite(PWM_LED5, (5 * (pot_value % 204)));
  }
}




 

Output

Video

Add video of output (know more)

 

 

 

 

 

Photo of Output

 

 

 

 

 

Upvote
Downvote

Submit Your Solution

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