Preciso de ajuda - Robô de Limpeza

Retornei !

Vlw mesmo em bubulindo ( cara é estranho agradecer alguem com esse nick...)

Como sou meio que impaciente eu comecei a aprender e pulei o básico, como vc disse eu o problema principal era os ||(ou) em vez de &&(E) e tbm tirei aqueles if encadeados e aprendi a usar o else if, ta funcionando certinho lindo agora =D

O serial prints torna mais fácil saber que estudar oq ele ta fazendo quando da problema, como eu acredito que eles não fazem mal vo deixar eles quietos msm. =3

Assim como ficou no final

// Inclusao de bibliotecas

#include <NewPing.h> 
#include <AFMotor.h>

// Definicoes

#define MAX_DISTANCE 300 // distancia maxima dos sensores
#define LEFT_TRIGGER_PIN  14 // Pino trigger do sensor esquerdo na porta 14
#define LEFT_ECHO_PIN     15 // Pino echo do sensor esquerdo na porta 15
#define RIGHT_TRIGGER_PIN 16 // Pino trigger do sensor direito na porta 16
#define RIGHT_ECHO_PIN    17 // Pino echo do sensor direito na porta 17

#define TURN_DISTANCE     22  // Valor real: 21.675519
#define SPEED             255 // Velocidade maxima

NewPing sensorLeft = NewPing(LEFT_TRIGGER_PIN, LEFT_ECHO_PIN, MAX_DISTANCE); // Novo sensor newping
NewPing sensorRight = NewPing(RIGHT_TRIGGER_PIN, RIGHT_ECHO_PIN, MAX_DISTANCE); // Novo sensor newping
AF_DCMotor engineLeft(1);  // Seleciona motor da esquerda
AF_DCMotor engineRight(2); // Seleciona motor da direita

// INICIO

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  // Usa o minimo de alocacao de variaveis possivel devido a problemas de relocacao:
  // http://stackoverflow.com/a/15782933

  // Espera 50ms para realizar uma nova leitura (valor minimo deve ser 29ms, 
  // menor que isso causa conflito nas leituras.

  delay(50);

  // Sensores enviam um sinal, recebem o sinal refletido em Ms e convertem para CM

  unsigned int left = sensorLeft.ping() / US_ROUNDTRIP_CM;
  unsigned int right = sensorRight.ping() / US_ROUNDTRIP_CM;

  Serial.print("Left: ");
  Serial.print(left);

  Serial.print(" | Right: ");
  Serial.print(right);
  Serial.println("");

  engineLeft.setSpeed(SPEED);
  engineRight.setSpeed(SPEED);

  // Continua em frente enquanto nao tiver obstaculos.

  if (left >= TURN_DISTANCE && right >= TURN_DISTANCE) {
    Serial.println("---- FRENTE ----");
    engineLeft.run(FORWARD);
    engineRight.run(FORWARD);
  }

  // Retorna quando estiver muito perto.

  else if (left <= TURN_DISTANCE && right <= TURN_DISTANCE) {
    Serial.println("---- TRAS ----");
    engineLeft.run(BACKWARD);
    engineRight.run(BACKWARD);
  }

  // Vira pra direita

  else if (right <= TURN_DISTANCE && right < left) {
    Serial.println("---- DIREITA ----");
    engineLeft.run(BACKWARD);
    engineRight.run(FORWARD);
    delay(1500);
  }

  // Vira pra esquerda

  else if (left <= TURN_DISTANCE && left < right) {
    Serial.println("---- ESQUERDA ----");
    engineLeft.run(FORWARD);
    engineRight.run(BACKWARD);
    delay(1500);
  }

  // Deu Treta

  else {
    
    Serial.println( " -----ERROR----- " );
    delay(10000);
  }

  delay(1000);
}

Agora a ultima coisa que sobro é axar uma maneira de alimentar o arduino sem ter que conectar no notebook, um amigo falou para arrancar o encaixe do cabo que vai no PC e soldar 2 fios de alimentação mas to com dó, procurar um adaptador ou algo do tipo.

Novamente Brigadão! Nunca mais vo me apressar tanto em programação, melhor ir um passo por vez.