int desiredValue;
int actualValue = 0;

int negative;
int positive;

String direction = "left";

void setup() {

Serial.begin(9600);
Serial.println("BEGIN");
Serial.println();

pinMode(6, OUTPUT);
pinMode(11, OUTPUT);
pinMode (A0, INPUT);

}

void loop() {

//*********** Direction flip ***************//
if (analogRead(A0) < 520) {
  if (direction == "right") {
      while (actualValue > 1) {
        actualValue--;
        Serial.println(actualValue);
        analogWrite(positive, actualValue);
        delay(10);
      }
    }
  direction = "left";
  negative = 6;
  digitalWrite(negative, LOW);
  positive = 11;
  //Serial.println("aaa");
}
if (analogRead(A0) > 520) {
    if (direction == "left") {
      while (actualValue > 1) {
        actualValue--;
        Serial.println(actualValue);
        analogWrite(positive, actualValue);
        delay(10);
      }
    }
  direction = "right";
  negative = 11;
  digitalWrite(negative, LOW);
  positive = 6;
  //Serial.println("xxx");
}
//*********** Direction flip ***************//

if (analogRead(A0) < 511.5) {

desiredValue = map(analogRead(A0), 0, 511.5, 255, 0);

if (actualValue < desiredValue) {
  actualValue++;
  delay(20);
}
if (actualValue > desiredValue) {
  actualValue--;
  delay(10);
}
}

if (analogRead(A0) > 511.5) {

desiredValue = map(analogRead(A0), 511.5, 1023, 0, 255);

if (actualValue < desiredValue) {
  actualValue++;
  delay(20);
}

if (actualValue > desiredValue) {
  actualValue--;
  delay(10);
}
}

analogWrite(positive, actualValue);
Serial.println(actualValue);
//Serial.println(direction);

}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
pot1:VCC
pot1:SIG
pot1:GND
led1:A
led1:C
led2:A
led2:C