//Project : Dimmable LED using Buttons
int LEDpin=3; //LED must be connected to PWM pins only(3,5,6,9,10,11)
int OnButtonPin=2; //Buttons & Buzzer can be connected to any digital pin (1-13)
int OfButtonPin=4;
int BuzzerPin=5;
int LEDvalue=0; // Stores current LED brightness value
int BuzzerTime=500; //Buzzer ON time in milliseconds (1 second = 1000 milliseconds)
int delayTime=700; //delayTime is used for smoother and better button control
void setup(){
pinMode(OnButtonPin,INPUT);
pinMode(OfButtonPin,INPUT);
pinMode(LEDpin,OUTPUT);
pinMode(BuzzerPin,OUTPUT);
}
void loop(){
int OnButtonValue=digitalRead(OnButtonPin);
int OfButtonValue=digitalRead(OfButtonPin);
//Increase Brightness
if (OnButtonValue==1){ //OnButtonValue==1 or OnButtonValue==0 change according to pull down or pull up resistor
LEDvalue=LEDvalue+10; //Brightness increase step
if (LEDvalue>255){
LEDvalue=255; // 255 is the maximum LED brightness Value
digitalWrite(BuzzerPin,HIGH);
delay(BuzzerTime);}
analogWrite(LEDpin,LEDvalue);}
//Decrease Brightness
if (OfButtonValue==1){
LEDvalue=LEDvalue-10; //Brightness decrease step
if (LEDvalue<0){
LEDvalue=0; // 0 is the minimum LED brightnessvalue( LED is OFF)
digitalWrite(BuzzerPin,HIGH);
delay(BuzzerTime);}
analogWrite(LEDpin,LEDvalue);}
delay(delayTime);
digitalWrite(BuzzerPin,LOW); //Turn OFF buzzer
}