
#include <EEPROM.h>
#define LED1 13
#define ledPin  2
int stanLED1 = LOW;
unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzasLED1 = 0;
int wartoscE;
void setup() {
  Serial.begin(9600);
  pinMode(LED1, OUTPUT);
  pinMode(22, INPUT_PULLUP);
  pinMode(23, INPUT_PULLUP);

}

void loop() {

  Serial.print("wartosc eprom  ");
  Serial.println(EEPROM.read(1));
  Serial.println(" ");
  Serial.println(" ");
  wartoscE = EEPROM.read(1);
  Serial.print("Odczytana wartosc to: ");
  Serial.println(wartoscE);

  static int wyjscie=23;  //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 ("wartosc zmiennej WYJSCIE............");
    Serial.println(wyjscie);

    //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) == LOW && 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) == LOW && wyjscie > 1)
    {

      wyjscie--;

      Serial.println(wyjscie);

    }
  }

  digitalWrite(LED1, wyjscie); //mrugamy diodą na out 13
  char Gplus = 'v';
  char Gminus = 'x';
  if (digitalRead(22) == LOW) {
    Gplus = 'P';
  }
  if (digitalRead(23) == LOW) {
    Gminus = 'M';
  }
  wartoscE = wyjscie;

  if (digitalRead(22) == HIGH && digitalRead(23) == HIGH)
  {
  EEPROM.update(1, wartoscE);
    Serial.print("wartoscE  ");
    Serial.println(EEPROM.read(1));

    Serial.println(Gplus);
    Serial.println(Gminus);
    Serial.println(" ");
  }


  delay(2000);
}
