#include <ESP32Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD (0x27, 16, 02);

Servo arm;
float pos = 0.0;
float step = 1.0;

int potpin = 14;
int val;
int B;
void setup()
{
  Serial.begin(9600);
  pinMode(12, INPUT_PULLUP);
  pinMode(13, INPUT_PULLUP);

  arm.attach(2);
  arm.write(pos);

  LCD.init ();
  LCD.backlight ();
}

void loop()
{
  if (!digitalRead(14))
  {
    val = analogRead(potpin);
    B = map(val, 0, 4095, 0, 180);
    arm.write(val);                  // sets the servo position according to the scaled value
    delay(15);
  }

  //  if (!digitalRead(13))
  //  {
  //    if (pos>0)
  //    {
  //      arm.write(pos);
  //      pos-=step;
  //      delay(5);
  //      LCD.setCursor (0, 0);
  //      LCD.print  ("<-              ");
  //      delay(300);
  //      LCD.clear();
  //      LCD.setCursor (0, 1);
  //      LCD.print  ("Arm Degree: ");
  //      LCD.setCursor (13, 1);
  //      LCD.print  (pos);
  //    }
  //  }

  //  if (!digitalRead(12))
  //  {
  //    if (pos<180)
  //    {
  //      arm.write(pos);
  //      pos+=step;
  //      delay(5);
  //      LCD.setCursor (0, 0);
  //      LCD.print  ("              ->");
  //      delay(300);
  //      LCD.clear();
  //      LCD.setCursor (0, 1);
  //      LCD.print  ("Arm Degree: ");
  //      LCD.setCursor (13, 1);
  //      LCD.print  (pos);
  //    }
  //  }
  LCD.setCursor (0, 1);
  LCD.print  ("Arm Degree: ");
  LCD.setCursor (13, 1);
  LCD.print  (B);
}