#define LED1 13
#define ledPin  2  
int stanLED1 = LOW;
unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzasLED1 = 0;



void setup(){
  Serial.begin(9600);
  pinMode(LED1, OUTPUT);
  pinMode(22,INPUT);
pinMode(23,INPUT);
}
 
void loop(){
  static int wyjscie =100;  //ustawianie poziomu startowego wyjścia PWM
      analogWrite(ledPin, wyjscie); 
  //Pobierz liczbe milisekund od startu
  aktualnyCzas = millis();
  
  //Jeśli różnica wynosi ponad xxUL milisekund
  if (aktualnyCzas - zapamietanyCzasLED1 >= 20UL) {
    //Zapamietaj aktualny czas
    zapamietanyCzasLED1 = aktualnyCzas;
    //Zmieniamy stan diody na przeciwny
    stanLED1 = !stanLED1;
    //ustawiamy nowy stan na diodzie
   
   //jeżeli stan diody wysoki oraz wejście 22 wysokie oraz zmienna "wyjscie" mniejsza lub równa -bo pętla zadziała jeszcze raz po sprawdzeniu czy jest mniej od 255 
    if (stanLED1==HIGH && digitalRead(22)==HIGH && wyjscie < 255) 
    {
      wyjscie++;
         Serial.println(wyjscie);  
       
        
    }
 
  //jeżeli stan diody wysoki oraz wejście 23 wysokie oraz zmienna "wyjscie" większa lub równa -bo pętla zadziała jeszcze raz po sprawdzeniu czy jest więcej od 0 
 if (stanLED1==HIGH && digitalRead(23)==HIGH && wyjscie >0) 
 {
  
      wyjscie--;
        
          Serial.println(wyjscie);
        
    }
    
      
    digitalWrite(LED1, stanLED1); //mrugamy diodą na out 13

  }
}
