void setup() { // put your setup code here, to run once: pinMode(LED_BUILTIN, OUTPUT); pinMode(2, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); Serial.begin(9600); } float pwm = 50.00; // 50 % float period = 1000.0; // 1 seconds void loop() { // put your main code here, to run repeatedly: int buttonStateDown = digitalRead(4); int buttonStateUp = digitalRead(2); if (buttonStateDown == 0) { // Button is pressed pwm = pwm - 10; if (pwm < 0) pwm = 0.0; } if (buttonStateUp == 0) { // Button is pressed pwm = pwm + 10; if (pwm > 100) pwm = 100.0; } Serial.print("Down:"); Serial.print(buttonStateDown); Serial.print(" - Up:"); Serial.println(buttonStateUp); float on = pwm / 100 * period; float off = (100.0 - pwm) / 100 * period; digitalWrite(LED_BUILTIN, HIGH); delay(on); digitalWrite(LED_BUILTIN, LOW); delay(off); Serial.print(on); Serial.print("/"); Serial.print(off); Serial.print("/"); Serial.println(pwm); }