LED Control Please Help!

I am trying to do a project where I need to control brightness of an LED with two buttons.

One button will be “Brighter”. One button will be “Dimmer”.

The LED will brighten or dim when a button is pushed then hold its value when the button is released.

If the LED reaches either limit (either 0 or 255) it will hold that value until the other button is pressed to steer it into the other direction.

At initial power up the LED is zero.

I found this code on line and uploaded it and tested it. It goes through the full range of bright and dim repeatedly but I would like to modify it to remove the auto feature, add a second switch and accomplish the above requirements. Obviously I am new to Arduino and programming. Any help would be appreciated.

int led = 9; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);

// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;

// reverse the direction of the fading at the ends of the fade:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}

Take a look at the state change detection example. . Have one button increment the button push counter and the other decrement the counter. Use the value of the counter to set the LED brightness. If the value of the counter becomes more than 255 set it to 255 or less than 0 set it to 0.

Thank you but the button will be held for the bright or dim duration.

Hi,
Welcome to the forum.

Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html then look down to item #7 about how to post your code.
It will be formatted in a scrolling window that makes it easier to read.

Thanks.. Tom.. :slight_smile:

Sudo code

while(upbuttonIsPushed && fadeamountIsStill<255)
{
fadeAmount ++; // one step up
delay(100); // tick time
}

while(downbuttonIsPushed && fadeamountIsStill>0)
{
fadeAmount --; // one step down
delay(100); // tick time
}

Leo..