//Itt állíthatod be a megfelelő pineket ESP/Arduino-n
#define LED_PIN D1  //led pin
#define ANALOG_PIN A0 //potméter pin

//PWM_MAX Arduino esetén (8bit) a max érték 254, + kikapcsolt áll 0 = 255 
//PWM_MAX míg ESP esetén (10bit) 1024 a max
#define PWM_MAX 1023
#define ANALOG_TURES 5 //az itt beállított érték alatt 0-ra állítjuk az analog jelet

int elozoPWMErtek = 0; //az utoljára beállított kimeneti érték

void setup() {
  Serial.begin(115200); //serial kommunikáció indítása
  Serial.println("Indulas ...");  //indulás kiírása a konzolba
  pinMode(ANALOG_PIN,INPUT);  //potméter pin INPUT-ra állítása
  pinMode(LED_PIN,OUTPUT);  //led pin OUTPUT-ra állítása
  digitalWrite(LED_PIN, LOW); //LOW-ra állítjuk led pwm értékét, hogy kikapcsolt állapotban legyen a led
}

void loop() {
  int analogErtek = analogRead(ANALOG_PIN); //kiolvassuk az analog jelet
  if (analogErtek < ANALOG_TURES) { analogErtek = 0; } //ANALOG_TURES érték alatt 0-ra állítjuk a bejövő értéket
  
  int kimenetiPWMErtek = map(analogErtek, 0,1023, 0, PWM_MAX); //konvertáljuk a 0-1024 bejövő jelet a 0 - PWM_MAX intervallumra 
  
  if (elozoPWMErtek != kimenetiPWMErtek) { //feleslegesen ne fusson a kod, csak ha változás van
    Serial.println("PWM = "+String(kimenetiPWMErtek)); 
    //az int típusú kimenetiPWMErtek a String funkcióval konvertáljuk és kiírjuk a konzolba
    analogWrite(LED_PIN, kimenetiPWMErtek); //vezéreljük a led fényerejét
    elozoPWMErtek = kimenetiPWMErtek; //frissítjük az utoljára beállított kimeneti értéket
  }
  
  //'alvás' 50ms-ig
  delay(50);
}
