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



#include <EEPROM.h>
void setup(){
  Serial.begin(9600);
  pinMode(LED1, OUTPUT);
  pinMode(11,INPUT);
pinMode(12,INPUT);
 

}
 
void loop(){

int czytajE=20;
  int wpiszE = 20;
 czytajE = EEPROM.read(1);
  Serial.print("Odczytana wartosc to: ");
  Serial.println(czytajE);

  static int wyjscie;  //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 >= 50UL) {
    //Zapamietaj aktualny czas
    zapamietanyCzasLED1 = aktualnyCzas;
    //Zmieniamy stan diody na przeciwny
    stanLED1 = !stanLED1;
    //ustawiamy nowy stan na diodzie
   Serial.print(wyjscie);  
        Serial.println("  00");
   //jeżeli stan diody wysoki oraz wejście 11 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(11)==HIGH && wyjscie < 255) 
    {
      wyjscie++;
         Serial.print(wyjscie);  
        Serial.println("  ++");
    
    }
 
  //jeżeli stan diody wysoki oraz wejście 12 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(12)==HIGH && wyjscie >15) 
 {
  
      wyjscie--;
        
            Serial.print(wyjscie);  
        Serial.println("  --");
     
    }
    
      
    digitalWrite(LED1, wyjscie); //mrugamy diodą na out 13
wpiszE = wyjscie;
EEPROM.update(1, wyjscie);
  }


}
