byte val = 5; byte lightPwm = 0; void setup() { pinMode(3, INPUT); pinMode(7, OUTPUT); } void loop() { if (digitalRead(3)) { analogWrite(7, lightPwm); lightPwm = lightPwm + val; if ( (lightPwm == 0) || (lightPwm == 1000)) val = -val; delay(50); } else { digitalWrite(7, HIGH); delay(100); digitalWrite(7, LOW); delay(100); } }