LED Brightness Control Using PWM

AliToufaily
AliToufaily

Solving Approach:

How do you plan to solve it?

compute the steps for waxing (getting brighter) and for waning,

use delayMicroseonds() to increase or decrese the brightness.

 

Code

// C++ code
//
#define waxingPeriod 2000000 // in microseconds
#define waningPeriod 1000000

int waxingStep, waningStep;

void setup()
{
  pinMode(9, OUTPUT);
  analogWrite(9, 0);
  waxingStep= waxingPeriod/255;
  waningStep= waningPeriod/255;
  Serial.begin(9600);
  Serial.println(waxingStep);
  Serial.println(waningStep);
}

void loop()
{
  int i;
  for (i =0; i < 255; i++) {
    analogWrite(9, i);
    delayMicroseconds(waxingStep);
  }
  for (i =255; i >=0; i--) {
    analogWrite(9, i);
    delayMicroseconds(waningStep);
  }
}


 

Output

Video

Add video of output (know more)

 

 

 

 

Photo of Output

Add a photo of your hardware showing the output.

 

 

 


 

Submit Your Solution

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